Zac*_*ack 4 java java.util.scanner
我试图根据单词之间的空格分割输入句子.它没有按预期工作.
public static void main(String[] args) {
Scanner scaninput=new Scanner(System.in);
String inputSentence = scaninput.next();
String[] result=inputSentence.split("-");
// for(String iter:result) {
// System.out.println("iter:"+iter);
// }
System.out.println("result.length: "+result.length);
for (int count=0;count<result.length;count++) {
System.out.println("==");
System.out.println(result[count]);
}
}
Run Code Online (Sandbox Code Playgroud)
当我在split中使用" - "时,它给出了下面的输出:
fsfdsfsd-second-third
result.length: 3
==
fsfdsfsd
==
second
==
third
Run Code Online (Sandbox Code Playgroud)
当我用空格""替换" - "时,它给出了下面的输出.
first second third
result.length: 1
==
first
Run Code Online (Sandbox Code Playgroud)
关于这里有什么问题的任何建议?我已经提到了stackoverflow post 如何按空格分割字符串,但它不起作用.
使用split("\\s+")提供此输出:
first second third
result.length: 1
==
first
Run Code Online (Sandbox Code Playgroud)
更改
scanner.next()
Run Code Online (Sandbox Code Playgroud)
至
scanner.nextLine()
Run Code Online (Sandbox Code Playgroud)
来自javadoc
扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格.
调用next()返回下一个单词.
调用nextLine()返回下一行.
已经在空格上拆分字符串的next()方法Scanner,也就是说,它返回下一个标记,字符串直到下一个字符串.因此,如果添加适当的println,您将看到它inputSentence等于第一个单词,而不是整个字符串.
替换scanInput.next()为scanInput.nextLine().
| 归档时间: |
|
| 查看次数: |
9803 次 |
| 最近记录: |