Java 拆分一个字符串’;我是用扫描仪进入的

Java 拆分一个字符串’;我是用扫描仪进入的,java,split,java.util.scanner,Java,Split,Java.util.scanner,我有个问题。我想用两个单词键入一个字符串(使用Java.util.scanner)。然后我希望程序在空白处分割输入的字符串,将两个子字符串保存在一个单独的变量中,并在最后生成一个输出 我知道你可以用手指分开琴弦 String s = "Hello World"; String[] = s.split(" "); 但是,当你的弦断开时,它似乎不起作用 Scanner sc = new Scanner(System.in); String s = sc.nextLine(); 有什么帮助吗? 非

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

我知道你可以用手指分开琴弦

String s = "Hello World";
String[] = s.split(" ");
但是,当你的弦断开时,它似乎不起作用

Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
有什么帮助吗? 非常感谢

s.split(\\s+)将分割字符串,即使您有多个空白字符(还有制表符、换行符..)

您还可以使用from
java.util

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

    }
或者来自ApacheCommonsLang

StringUtils.split(s)

您的代码适用于我:

String s;
s=sc.nextLine();

String[] words=s.split(" "); 
for(String w:words){  
System.out.print(w+" ");  
}
输入:
“你好,世界”


输出:
“Hello world”

您可能还想尝试这种方式来拆分从用户输入中获得的字符串:

Scanner sc = new Scanner(System.in);
String[] strings = sc.nextLine().split("\\s+");
如果您只想打印包含这些分隔字符串的数组,可以不使用任何循环,只需使用:

Arrays.toString(strings);

如果您想让打印的字符串看起来不一样,可以使用简单的循环打印每个元素,或者使用
StringBuilder
类及其
append()
method-这种方法可能比在更长的字符串数组上循环更快。

您的代码应该适用于第一行上由单个空格分隔的两个输入字。你的意见是什么?也许,
System.out.println(“DEBUG:s=“+s”)可以帮助澄清您的问题。您的代码似乎还可以。第二个代码似乎不起作用是什么意思?你有什么错误吗?您提供的输入和程序的输出是什么?实际上输出是“Hello world”