Java 使用scanner读取输入语句

Java 使用scanner读取输入语句,java,java.util.scanner,Java,Java.util.scanner,我正在编写代码来读取由单词组成的简单语句,比如“一二三”,并将每个单词放入数组字符串[]标记中,我想使用Scanner输入语句,但它只读取第一个单词。 当我使用main方法输入语句时,它工作得很好。 我能知道我犯了什么错吗 以下是两个代码: //使用主要方法: public class MyLangyage { public static void main(String[] args) { String statement = "one two three";

我正在编写代码来读取由单词组成的简单语句,比如“一二三”,并将每个单词放入数组字符串[]标记中,我想使用Scanner输入语句,但它只读取第一个单词。 当我使用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]);
        }
    }
}
公共类MyLangyage{
公共静态void main(字符串[]args){
String语句=“一二三”;
屏幕(报表);
}
公共静态无效屏幕(字符串语句){
字符串标记[]=语句。拆分(“”);
for(int i=0;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]);
        }
    }
}
import java.util.Scanner;
公共级MyLangage{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
String语句=scanner.next();
屏幕(报表);
}
公共静态无效屏幕(字符串语句){
字符串标记[]=语句。拆分(“”);
for(int i=0;i
如果我在控制台上写:

一二三

然后按enter键,结果将是:


一个可以拆分整个输入行,或者使用扫描仪一次获取一个令牌。不要两者都做


如果要从
扫描仪中提取多个单词,则必须多次使用
Scanner.next()
,实际上,每个单词一次。

您使用的是
Scanner.next()
,它将读取下一个单词。如果你想读整行,然后分开使用