2

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

控制台的结果将是:

一二三

//使用扫描仪:

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]);
        }
    }
}

如果我在控制台写:

一二三

然后按回车结果将是:

4

2 回答 2

7

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

于 2012-04-27T16:48:20.533 回答
2

要么拆分一整行输入,要么使用 Scanner 一次获取一个令牌。不要两者都做。

如果你想从 a 中提取多个单词Scanner,那么你将不得不使用scanner.next()不止一次——实际上,每个单词一次。

于 2012-04-27T16:46:25.693 回答