扫描仪从终端输入

时间:2019-03-14 20:41:59

标签: java

首先,我在StackOverflow中找不到任何相关的帖子。

我正在尝试从终端输入以下文件名:

System.out.println("Get filename");
String m = scanner.next();
System.out.println("Get my name");
String n = scanner.next();

但是我一直只获得第一部分,

eg.:

*filename: File.txt*

我只会得到File.部分,而不会得到txt部分。

有什么解决办法吗?我不想使用BufferReader。另外,我尝试过trim()nextLine()都没有成功。


编辑(也是解决方案) : 当我有两台next()扫描仪彼此紧紧相连时,我发现这对我有用:

System.out.println("Get filename");
scanner.nextLine();
String m = scanner.nextLine();
System.out.println("Get my name");
String n = scanner.next();

我真的不知道为什么。但这有效。

2 个答案:

答案 0 :(得分:1)

使用scanner.nextLine()获取全文。

答案 1 :(得分:0)

由于scanner.next()将文本与空格分开,因此您应该使用scanner.nextLine()

import java.util.Scanner;
public class DemoDate {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        System.out.println(text);
    }
}