2013-03-06 2 views
-1

스캐너로 사용자 입력을 시도하고 사용자가 enter를 누른 후 다음 입력 문으로 진행합니다. 한 번에 모두 인쇄됩니다.자바에서 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 
+1

방금 ​​테스트 했으므로 사용자 "enter"키를 기다립니다. (Scanner (System.in) 앞에 "new"만 추가됨). 사용자 입력을 인쇄 하시겠습니까? – BobTheBuilder

+0

위의 코드에서 얻은 샘플 입력 및 해당 출력을 공유 할 수 있습니까? 기대되는 산출물/행동? – Apurv

+1

실행중인 코드를 게시하셨습니까? 이 Scanner in Scanner (System.in)은'new' 키워드가 어디에 있거나 Java17에서 새로운 것을 사용하고 있습니까? 그런데 나는 아직도 java7 thats에 묻고있다. – Freak

답변

0

난 그냥 코드를 테스트하고 사용자를 눌러 키 "입력"만들 않습니다 .. 당신은 무엇을 설명 할 수 있습니다 더 구체적으로 찾고 있습니까? 그냥 드릴 수 없습니다

Scanner in = Scanner(System.in); 

Scanner in =new Scanner(System.in); 


으로 첫 번째 라인 교체해야

Scanner in = new Scanner(System.in); 
1

에 코드를 완벽하게 fine.You입니다 : 다른 사람이 언급했듯이 당신의 스캐너를 변경 이 코드가 Scanner in = Scanner(System.in);이 줄로 인해 실행 코드가 아니기 때문에이 코드를 어떻게 테스트했는지 이해하려면

그것을 테스트

path = in.nextLine(); 

으로

0

변경

path = in.next(); 

, 모두 인쇄와 잘 작동합니다!

+0

무엇이 잘못되었는지 설명해 주시겠습니까? – BobTheBuilder

+0

작동 중입니다. 'if ((name = in.nextLine()). length()> 0)'가 작동하는지 여부를 테스트 했습니까? – Freak

+0

잠깐 기다려주세요, 여전히 뭔가 잘못되었습니다 ... 나는 그것을 확인하고 나중에 내 대답을 업데이트 할 것입니다. – goravine

1

path = in.nextLine(); 

그렇지 않으면, name = in.nextLine() 캐치 경로의 키 "입력"어떤 가치를 얻을하지 않습니다

당신은 사용해야합니다.