使用scanner来读取输入语句

时间:2012-04-27 16:45:31

标签: java java.util.scanner

我正在编写代码来阅读简单的单词语句,如“一二三”,并将每个单词放入一个数组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]);
        }
    }
}

如果我在控制台写:

一两三

然后按回车键结果将是:

一个

2 个答案:

答案 0 :(得分:7)

您正在使用scanner.next()获取下一个单词。如果您想阅读整行,然后拆分使用scanner.nextLine()

答案 1 :(得分:2)

分割整个输入行,或使用扫描程序一次获取一个令牌。不要两者兼顾。

如果你想从Scanner中提取多个单词,那么你必须多次使用scanner.next() - 实际上,每个单词一次。