在java中检测enter键

时间:2013-03-06 07:13:56

标签: java

我尝试使用扫描仪获取用户输入,如果用户按Enter键,则继续执行下一个输入语句。但它会立刻打印出来。

public class MainRDS 
{
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        String path;
        String name;
        String ext;
        String date;

        System.out.println("Directory search by path, name, extension, content and date.");
        System.out.print("\nEnter Starting directory for the search (link c:"+"\\"+"temp) : ");
        path = in.next();

        System.out.print("\nEnter the file name (like myFile or enter for all) : ");

        if((name = in.nextLine()).length() > 0)
        System.out.print("\nEnter the file extenstion (like txt or enter for all) : ");

        if((ext = in.nextLine()).length() > 0)
        System.out.print("\nEnter last modified date (like 11/21/2012 or enter for any) : ");

        date = in.nextLine();
    }
}

输出:

Directory search by path, name, extension, content and date.

Enter Starting directory for the search (link c:\temp) : c:

Enter the file name (like myFile or enter for all) : myfile

Enter last modified date (like 11/21/2012 or enter for any) : 

必需的输出:

Directory search by path, name, extension, content and date.  
Enter starting directory for the search (like c:\temp): c:\temp 
Enter the file name (like myFile or enter for all):  
Enter the file extension (like txt or enter for all): txt 
Enter content to search for (like comp121 or enter for any):  
Enter last modified date (like 11/21/2013 or enter for any): 11/1/2011 

4 个答案:

答案 0 :(得分:1)

您的代码非常好。您只需要更换第一行

Scanner in = Scanner(System.in);

Scanner in =new Scanner(System.in);


我无法理解您是如何测试此代码的,因为Scanner in = Scanner(System.in);此行不是正在运行的代码

答案 1 :(得分:1)

知道了!

你需要使用:

path = in.nextLine();

否则,name = in.nextLine()会捕获路径的“enter”键,但不会获得任何值。

答案 2 :(得分:0)

我刚测试了你的代码,它确实让用户按下“回车”键..你能解释一下你在寻找更具体的内容吗?正如其他人所说,只需更改您的扫描仪:

Scanner in = new Scanner(System.in);

答案 3 :(得分:0)

更改

path = in.next();

path = in.nextLine();

经过测试,打印出来并且工作正常!