检测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
你的代码非常好。你只需要更换你的第一行
Scanner in = Scanner(System.in);
同
Scanner in =new Scanner(System.in);
我无法理解你是如何测试这段代码的,因为这不是一个正在运行的代码,因为Scanner in = Scanner(System.in);
这条线
得到它了!
你需要使用:
path = in.nextLine();
否则, name = in.nextLine()
捕获路径的“enter”键,但不会获得任何值。
我刚刚测试了你的代码,它确实让用户按下“回车”键。你能解释一下你在寻找更具体的内容吗? 正如其他人所说,只需更改您的扫描仪:
Scanner in = new Scanner(System.in);
更改
path = in.next();
至
path = in.nextLine();
经过测试,所有打印出来并且工作正常!