【问题标题】:Splitting a string with no delimiter拆分没有分隔符的字符串
【发布时间】:2012-11-07 07:58:10
【问题描述】:

我想将像“我的狗”这样的字符串拆分成一个数组:

| M | y | space char will be in here | D | o | g |

这是我的代码:

String []in_array;
    input = sc.next();  
in_array = input.split(""); //Note this there is no delimiter 

for(int k=1; k < in_array.length; k++){
    System.out.print(" "+in_array[k]);
}

编辑:

它只打印出“我的”

【问题讨论】:

  • 那么,发生了什么?
  • 问题是什么?它奏效了吗?如果没有,它做错了什么?
  • 嗯,在我的电脑上,它会打印出My Dog。请重新测试一下。您的输入是否真的包含:-My Dog
  • @RohitJain 查看我的编辑。我使用的是扫描仪。
  • @AdegokeA.. 使用scanner.next() 方法仅读取下一个令牌。因此,一旦遇到space,它就会停止读取。

标签: java arrays string split


【解决方案1】:

尝试使用 Java 代码

String sourceString="My Dog";
char[] varArr = sourceString.trim().toCharArray();
for (char c : varArr) {
   System.out.print(c+" | ");
}

【讨论】:

    【解决方案2】:

    你只需要一行代码:

    String[] arr = input.split("(?<=.)");
    

    正则表达式表示要在每个字符之后拆分 ,因此与在空白上拆分不同,您不会从拆分中获得初始空白元素。

    【讨论】:

      【解决方案3】:

      如果你看到的都是“我的”,那就是你在input 字符串中的所有内容。你用过 Scanner.next() 吗?

      for(String s : "My dog".split(""))
          System.out.println(s);
      

      打印

      {empty line}
      M
      y
      
      d
      o
      g
      

      【讨论】:

        【解决方案4】:

        java.lang.String 有一个 toCharArray() 可以做到这一点。

        【讨论】:

        • -1 为您提供char 的数组,而不是String 的数组
        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多