2015-01-30 4 views
0

인터넷에서 검색 한 결과이 답변을 찾을 수없는 것 같습니다. 그래서 숫자를 허용해야하는 문자를 입력하지 못하도록하는 방법을 알고있는 사람이 있습니까?사용자 입력을 숫자 값으로 제한하는 방법은 무엇입니까?

내 코드가 지금까지와 유사합니다.

public static double payCalculator(double hours, double basePay) 
{ 
    double totalPay; 
    double overTime = 8.00 * 1.5; 
    while(hours < 0 | hours > 60) { 
     System.out.println("Cannot work more than 60 hours a week"); 
     System.out.println("Hours Work?"); 
     hours = in.nextDouble(); 
    } 
    while(basePay < 8) { 
     System.out.println("Base Pay cannot be less than 8"); 
     System.out.println("Base Pay?"); 
     basePay = in.nextDouble(); 
    } 
    if 
     (hours <= 40){ 
     totalPay = hours*basePay; 
    } 
    else { 
     totalPay = ((hours - 40)*overTime) + (40*basePay); 
    } 
    return totalPay; 

} 
public static void main (String[] args) { 

    System.out.println("Hours worked?"); 
    hours = in.nextDouble(); 
    System.out.println("Base Pay?"); 
    basePay = in.nextDouble(); 
    DecimalFormat df = new DecimalFormat("###.##"); 
    totalPay = payCalculator(hours, basePay); 
    System.out.println("Total Pay is " + df.format(totalPay));  
} 
} 

감사합니다.

+0

당신은 당신의 전체를 게시 할 필요가 없습니다이 예제를 고려 코드를 사용하여 문제에 대한 해결책을 찾으려면 문제와 관련된 코드의 해당 부분 만 공유하십시오. –

+0

무엇이'안에'?? – PeterMmm

+0

콘솔 응용 프로그램으로 보입니다. 스윙 입력 텍스트 필드가있는 GUI가 가능합니까? – PeterMmm

답변

3

Scanner을 입력으로 사용한다고 가정합니다.

Scanner.hasNextDouble()을 사용하여 숫자인지 확인할 수 있습니다.이 스캐너 입력의 다음 토큰이 nextDouble() 메서드를 사용하여 double 값으로 해석 될 수 있으면 true를 반환합니다. 스캐너는 입력을 지나서 진행하지 않습니다.

,

Scanner sc = new Scanner(System.in); 
    double dbl = 0.0; 
    boolean isValid = false; 
    while (isValid == false) { 
     System.out.println("Input Number: "); 
     // If input is number execute this, 
     if (sc.hasNextDouble()) { 
      dbl = sc.nextDouble(); 
      isValid = true; 
      System.out.println("OK"); 
     } 
     // If input is not a number execute this block, 
     else { 
      System.out.println("Error! Invalid number. Try again."); 
     } 
     sc.nextLine(); // discard any other data 
    } 
    sc.close(); 

출력, 그것은 사용자가 번호를 제공하지 않는 입력을 요구 유지할 것이다,

Input Number: 
adsads 
Error! Invalid number. Try again. 
Input Number: 
sdas 
Error! Invalid number. Try again. 
Input Number: 
hello 
Error! Invalid number. Try again. 
Input Number: 
hi 
Error! Invalid number. Try again. 
Input Number: 
2.0 
OK 
관련 문제