2017-05-06 1 views
1

두 입력 모두에 대해 int 값이 필요합니다. 사용자가 1 월에 1 또는 01을 씁니다.
그럼 1 - 12에서 작동하지만, 01로 작성하면 내 오류 텍스트가 표시됩니다.
나를 위해 그것 intent 값입니다 importent, 나는 String이 완벽하게 작동한다는 것을 압니다.월 입력 01 및 1을 확인 하시겠습니까?

private static BufferedReader input= new BufferedReader(new InputStreamReader(System.in)); 
private Output output = new Output(); 


public static String inputText() throws Exception { 
    return input.readLine(); 
} 

public int monatInput(String text){ 
    String monthNumber= ""; 
    boolean again = true; 
    while (again) { 
     System.out.print(text); 
     again = false; 
     try { 
      monthNumber = inputText(); 
      int number= Integer.parseInt(monatZahl); 
      int monthLength = String.valueOf(monatZahl).length(); 


      if (number<=1 || number>=12) { 
       again = true; 
       throw new Exception(); 
      } else if (monthLength> 3) { 
       again = true; 
       throw new Exception(); 
      } 
     } catch (Exception e) { 
      this.output.monatWrongInput; 
     } 
    } 
    int converter = Integer.parseInt(monatZahl); 
    return converter; 

} 

여러분이이 문제의 유효성을 확인하는 데 도움이되기를 바랍니다. 나는 for-loop에 관한 많은 포스트가 01 자리를 생성하는 것을 보았다. 그러나 이것은 사용자 입력으로 유효성을 확인하는 것과 약간 다르다. 당신이 바로 입력을 사용하지 않기 때문에

답변

1

당신은 당신의 자신의 오류 :

monthNumber = inputText(); 
int number = Integer.parseInt(monatZahl); 
//-----------------------------^^-----------this should be monthNumber 

또 다른 것은, 당신이 당신의 수는 1과 12 사이에 있는지 확인하기 위해 단지 필요한 입력을 검증하기 위해, 당신은 (1)과 (12)가 valide의 달 (<= 또는 >= 확인하지 않음)이기 때문에이 > 12 또는 < 1 경우 lenght
귀하의 달이 잘못 체크 할 필요가 없습니다.

int number = Integer.parseInt(monthNumber); 

if (number < 1 || number > 12) { 
    again = true; 
    throw new Exception(); 
} 

편집

주 모두 : 나는 01를 입력하려고하면 때문에

int i1 = Integer.parseInt("01"); 
int i2 = Integer.parseInt("1"); 

1

+0

내가 길이를 필요 valide 번호를 부여 그것은 나에게 새로운를 던졌습니다 예외. 네, 죄송합니다. 저는 제 프로그램을 번역하려고합니다. 그러나 그것은 여전히 ​​작동하지 않습니다. 01 - 12의 writh는 작동합니다. 1-12에서는 작동하지만 두 기능이 모두 필요합니다. 제 질문을 깨끗하게 만들 수 있기를 바랍니다. –

+0

@ MonsterHunter.Dev 오른쪽 입력을 사용하지 않기 때문에 예외가 발생합니다. 내 편집을 확인하십시오. –

+0

제 답변을주의 깊게 읽으십시오. @ MonsterHunter.Dev if (number <1 || number> 12) { '이 아니라면'if (number <= 1 || number> = 12)'{'01 '을 사용하면 예외가 발생합니다. –

관련 문제