如何将句子转换为数组?
我有这段代码:
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your sentence: ");
String sentence = scanner.next();
String[] words = sentence.split(" ");
for (String word : words) {
System.out.println(word);
}
但是......所有这一切只是打印出数组的第一个单词,就是这样。
答案 0 :(得分:1)
next
只是字面上消耗了下一个String。请改用nextLine
。
String sentence = scanner.nextLine();
原因:nextLine()
advances the scanner越过换行符,这意味着它会捕获整行。
答案 1 :(得分:1)
Scanner.next()
只读取下一个标记 - 而不是下一行。你想要:Scanner.nextLine()
答案 2 :(得分:1)
我添加了一个调试语句,应该说明一个非常大的问题:
import java.util.Scanner;
public class SentenceToWords {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your sentence: ");
String sentence = scanner.next();
//USEFUL INFORMATION!!!
System.out.println("sentence=\"" + sentence + "\"");
String[] words = sentence.split(" ");
for (String word : words) {
System.out.println(word);
}
}
}
输出:
[C:\java_code\]java SentenceToWords
Enter your sentence: setao uhesno uhoesuthesao uh
sentence="setao"
setao
正如@Makoto所说:当你想要读一行时,你只是在读一个单词。
答案 3 :(得分:1)
这种情况正在发生,因为您正在使用Scanner,如果您使用next()
,它会忽略空格后的字符串。请改用nextLine()
。