1

假设我有 Scanner 方法,然后我想打印用户输入。

以这段代码为例:

    String randomWords;
    Scanner kb = new Scanner(System.in);

    System.out.print("Please enter two words separated: ");

    randomWords = kb.next();    
    System.out.println(randomWords);

如果输入的两个分开的词是

hello world

仅有的

hello 

被打印

为什么是这样?以及如何打印包含空格的两个单词?

谢谢你。

4

3 回答 3

5

请改用Scanner#nextLine( ),

此方法返回当前行的其余部分,不包括末尾的任何行分隔符。

randomWords = kb.nextLine();    

Scanner#next()根据分隔符读取下一个完整的标记。

从此扫描器中查找并返回下一个完整的令牌。一个完整的标记前后是匹配分隔符模式的输入

由于扫描仪的默认分隔符是空白,您应该使用Scanner#useDelimiter(str)显式定义扫描仪的分隔符。如果您使用\n下一行作为分隔符,您的当前代码将起作用。

 Scanner kb = new Scanner(System.in).useDelimiter("\n");
    System.out.print("Please enter two words separated: "); 
    randomWords = kb.next();    
    System.out.println(randomWords);
于 2013-01-31T11:26:07.100 回答
1

使用Scanner.nextLine()方法读取换行符(不包含)。

randomWords = kb.nextLine();
于 2013-01-31T11:26:05.727 回答
1
public static void main(String[] args) {
        String randomWords;
        Scanner kb = new Scanner(System.in);

        System.out.print("Please enter two words separated: ");

        randomWords = kb.nextLine(); 
        System.out.println(randomWords);
    }
于 2013-01-31T11:26:50.653 回答