java - 如何按字符“/”拆分字符串?

时间:2015-12-23 17:50:56

标签: java split

我正在hackerrank.com上尝试编程问题并使用Java语言。

部分问题要求我按字符/分割字符串。

我在Java中遇到了这样的问题。

给定输入:

cu/a/ca ha/ri i/tu san/gat se/juk

我的代码(Java):

Scanner input = new Scanner(System.in);
    String source = input.next();
    String[] inputchar = source.split("/");
for (int i = 0; i < inputchar.length; i++){
    System.out.print(inputchar[i] + "\n");
}

结果:

cu
a
ca

但是,我期待以下输出:

cu
a
ca ha
ri i
tu san
gat se
juk

但是,当我尝试使用以下C#代码时,它给了我正确的结果。

    String source = Console.ReadLine();
    String[] slashchar = source.Split('/');
    for (int k = 0; k < slashchar.Length; k++)
    {
        Console.WriteLine(slashchar[k]);
    }

我注意到带有间隔的字符串无法使用我的Java代码正确拆分。

上面的Java代码是否有任何错误?

3 个答案:

答案 0 :(得分:3)

更改为String source = input.nextLine();而不是String source = input.next();因为input.next()返回字符串直到空格,input.nextLine会返回字符串直到新行。

答案 1 :(得分:3)

您的扫描程序在空格上执行了一些标记化。所以你没有用

读完整行
input.next();

你只能读到第一个空白。

替换为

input.nextLine();

再试一次。

答案 2 :(得分:2)

使用java尝试使用nextLine(),如下所示:

  Scanner input = new Scanner(System.in);
   String source = input.nextLine();
   String[] inputchar = source.split("/");
 for (int i = 0; i < inputchar.length; i++){
  System.out.print(inputchar[i] + "\n");
}