拆分您使用扫描仪输入的字符串

时间:2017-12-23 14:34:46

标签: java split java.util.scanner

我有问题。我想用两个单词输入一个字符串(带有Java.util.scanner)。然后我希望程序将输入的字符串拆分为空格,将两个子字符串保存在一个单独的变量中并最后输出。

我知道你可以用

分割字符串
String s = "Hello World";
String[] = s.split(" ");

但是当你的String

时它似乎不起作用
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();

有任何帮助吗? 非常感谢你

4 个答案:

答案 0 :(得分:2)

s.split("\\s+");将拆分您的字符串,即使您有多个空格字符(也是制表符,换行符..)

您也可以使用java.util

    StringTokenizer tokens = new StringTokenizer(s.trim());
    String word;
    while (tokens.hasMoreTokens()) {
        word = tokens.nextToken();

    }

或者来自Apache Commons Lang

StringUtils.split(s)

答案 1 :(得分:2)

这将在分割成数组后存储您的数据,并通过循环将它打印出来。

    Scanner sc = new Scanner(System.in);
    String s = sc.nextLine();
    String[] words=s.split("\\s"); //splits the string based on whitespace  
    for(String w:words){  
    System.out.println(w);  
    }

答案 2 :(得分:1)

您的代码适合我:

String s;
s=sc.nextLine();

String[] words=s.split(" "); 
for(String w:words){  
System.out.print(w+" ");  
}

输入:"Hello world"

输出:"Hello world"

答案 3 :(得分:0)

您可能还想尝试这种分割从用户输入获得的String的方式:

Scanner sc = new Scanner(System.in);
String[] strings = sc.nextLine().split("\\s+");

如果您只想打印包含这些分隔字符串的数组,您可以不使用任何循环来完成,只需使用:

Arrays.toString(strings);

如果您希望以其他方式查看打印的字符串,可以使用简单的循环打印每个元素或使用StringBuilder类及其append()方法 - 这种方式可能比循环遍历较长的字符串数组。