我尝试使用扫描仪获取用户输入,如果用户按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
答案 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();
经过测试,打印出来并且工作正常!