두 입력 모두에 대해 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 자리를 생성하는 것을 보았다. 그러나 이것은 사용자 입력으로 유효성을 확인하는 것과 약간 다르다. 당신이 바로 입력을 사용하지 않기 때문에
내가 길이를 필요 valide 번호를 부여 그것은 나에게 새로운를 던졌습니다 예외. 네, 죄송합니다. 저는 제 프로그램을 번역하려고합니다. 그러나 그것은 여전히 작동하지 않습니다. 01 - 12의 writh는 작동합니다. 1-12에서는 작동하지만 두 기능이 모두 필요합니다. 제 질문을 깨끗하게 만들 수 있기를 바랍니다. –
@ MonsterHunter.Dev 오른쪽 입력을 사용하지 않기 때문에 예외가 발생합니다. 내 편집을 확인하십시오. –
제 답변을주의 깊게 읽으십시오. @ MonsterHunter.Dev if (number <1 || number> 12) { '이 아니라면'if (number <= 1 || number> = 12)'{'01 '을 사용하면 예외가 발생합니다. –