我有问题。我想用两个单词输入一个字符串(带有Java.util.scanner)。然后我希望程序将输入的字符串拆分为空格,将两个子字符串保存在一个单独的变量中并最后输出。
我知道你可以用
分割字符串String s = "Hello World";
String[] = s.split(" ");
但是当你的String
时它似乎不起作用Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
有任何帮助吗? 非常感谢你
答案 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()
方法 - 这种方式可能比循环遍历较长的字符串数组。