2017-03-11 1 views
1

안녕하세요. 저는 현재 Java의 초보자입니다. 아래 코드는 사용자가 "yes"가 아닌 다른 것을 입력 할 때까지 계속 실행되는 while 루프입니다. 스캐너가 두 가지 이상의 대답을 받아 들일 수있는 방법이 있습니까? 예 : 예, y, 확실, test1, test2 등자바 스캐너에서 둘 이상의 문자열 입력을 허용하는 방법은 무엇입니까?

import java.util.Scanner; 

public class Test {   

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     String ans = "yes"; 
     while (ans.equals("yes")) 
     { 
      System.out.print("Test "); 
      ans = in.nextLine(); 
     }   
    } 
} 
+0

'[ "예", "확인" , "..."]'. [Some Answers here] (http://stackoverflow.com/questions/1128723/how-can-i-test-if-an-array-contains-a-value-value)는 문제를 해결하는 데 도움이됩니다. –

답변

0

사용자 입력 값을 루프 상태로 비교하지 마십시오!

은 각각 : 다른 말로하면

while(! ans.trim().isEmpty()) { 

처럼 뭔가 그 루프 조건을 변경 : 사용자가 아무 것도 입력 (그래서 사용자가 방금 입력에 도달 할 때 루프가 정지) 동안 반복 유지한다.

1

사용하여 표현의 또는 운영자

while (ans.equals("yes") || ans.equals("sure") || ans.equals("test1")) 
     { 
      System.out.print("Test "); 
      ans = in.nextLine(); 
     } 

하지만 당신은 더 많은 옵션을 포함하려는 경우, 그것은 인수로 입력을 받아하는 방법을 제공하는 더 나은 평가하고있는 경우에 true를 돌려줍니다 입력이 허용됩니다.

0

문자열 값 목록에 주어진 문자열이 포함되어 있는지 확인하는 방법을 찾고 있습니다. 이를 달성하는 데는 여러 가지 방법이 있습니다. 하나는 메서드를 사용하여 사용자 입력 in이 사용자가 정의한 '긍정적 인'답변 목록에 나타나는지 확인하는 것입니다. ArrayList를 사용

, 코드는 다음과 같이 수 : 당신은 같은 문자열 값의 목록에 특정 문자열이 포함되어 있는지 여부를 확인하는 방법을 찾고 있습니다

import java.util.Scanner; 

public class Test { 

    public static void main(String[] args) { 

     ArrayList<String> positiveAnswers = new ArrayList<String>(); 
     positiveAnswers.add("yes"); 
     positiveAnswers.add("sure"); 
     positiveAnswers.add("y");  

     Scanner in = new Scanner(System.in); 
     String ans = "yes"; 

     while (positiveAnswers.contains(ans)) 
     { 
      System.out.print("Test "); 
      ans = in.nextLine(); 
     }   
    } 
} 
+0

'ArrayList' 대신에 어떤 종류의'Set'을 사용하지 않을까요? 확인해야 할 용어가 많으면 효율적입니다. 코드는 더 이상 복잡하지 않습니다 (실제로는 거의 동일합니다). –

관련 문제