2016-06-02 1 views
-2
static void a1() 
{ 

    int choice; 
    Scanner sc1 = new Scanner(System.in); 
    System.out.println(); 
    System.out.print("Enter Part#: "); 
    pa[count] = sc1.nextLine(); 

    System.out.println(); 
    System.out.print("Enter Make: "); 
    ma[count] = sc1.nextLine(); 

    System.out.println(); 
    System.out.print("Enter description: "); 
    so[count] = sc1.nextLine(); 

    System.out.println(); 
    System.out.print("Enter price: "); 
    pr[count] = sc1.nextLine(); 

    ++count; 

} 

사용자가 A-Z에서 숫자 나 문자 만 입력하도록하려면 어떻게해야합니까?숫자 또는 A-Z 만 입력하도록 사용자를 유도 하시겠습니까?

+0

필요에 맞게이 대답을 적용 할 수 있습니다. http://stackoverflow.com/a/13115310/2308683 –

+0

'System.out.println ("AZ에서 숫자 나 문자 만 입력하십시오); – vikingsteve

답변

0

while 루프에서 각 섹션을 감싸십시오. 사용자가 유효한 정보를 입력 할 때까지 사용자에게 입력을 요청하는 작업이 반복됩니다.

do 
{ 
    System.out.print("Enter Part#: "); 
    pa[count] = sc1.nextLine(); 
} 
while(checkAlpha(pa[count]) == false); 

유효한 문자가 있는지 문자열의 각 값을 확인하는 함수를 만듭니다.

public static boolean checkAlpha(String phrase) 
{ 
    char[] tempChars = phrase.toCharArray(); 
    for(char c : tempChars) 
    { 
     if(!Character.isLetterOrDigit(c)) 
     { 
      return false; 
     } 
    } 
    return true; 
} 

또한에있는 동안 검사를 변경하여이 사용하는 정규식을 할 수있는 : 당신이 정규를 구축하기 위해 Pattern 클래스를 사용하는 경우

while(!pa[count].matches("^[a-zA-Z0-9]+$")); 
+0

답장을 보내 주셔서 감사합니다. :) 정규식을 사용했습니다. 그것은 일했다! 다시 한번 감사드립니다 :) – Firefox264

0

, 당신은 단지 패턴을 사용할 수 있어야 [^\\p{Alnum}] 및 그런 다음 find() 메소드를 호출하여 패턴의 일치하는 인스턴스를 찾으십시오.

관련 문제