我正在编写代码来阅读简单的单词语句,如“一二三”,并将每个单词放入一个数组String []标记中,我想使用Scanner输入语句,但它只读取第一个单词。 当我使用main方法输入语句时效果很好。 我能知道我的错误是什么吗?
这是2个代码:
//使用main方法:
public class MyLangyage {
public static void main(String[] args) {
String statement = "one two three";
screen(statement);
}
public static void screen(String statement) {
String token[]= statement.split(" ");
for (int i = 0; i < token.length; i++) {
System.out.println(token[i]);
}
}
}
控制台的结果将是:
一个 二 3
//使用扫描仪:
import java.util.Scanner;
public class MyLangyage {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String statement = scanner.next();
screen(statement);
}
public static void screen(String statement) {
String token[]= statement.split(" ");
for (int i = 0; i < token.length; i++) {
System.out.println(token[i]);
}
}
}
如果我在控制台写:
一两三
然后按回车键结果将是:
一个
答案 0 :(得分:7)
您正在使用scanner.next()
获取下一个单词。如果您想阅读整行,然后拆分使用scanner.nextLine()
答案 1 :(得分:2)
分割整个输入行,或使用扫描程序一次获取一个令牌。不要两者兼顾。
如果你想从Scanner
中提取多个单词,那么你必须多次使用scanner.next()
- 实际上,每个单词一次。