验证月份输入 01 和 1?
Validate Month input 01 and 1?
我需要两个输入的 int 值。用户为一月写 1 或 01。
所以它确实适用于 1 - 12,但如果我写 01,它确实会给我自己的错误文本。
对我来说重要的是它是一个 int 值,我知道 String 是完美的。
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;
}
希望大家帮我验证一下这个问题。我看到很多 post 关于生成 01 数字的 for 循环,但这有点不同然后验证为用户输入。
你自己的错误是因为你没有使用正确的输入:
monthNumber = inputText();
int number = Integer.parseInt(monatZahl);
//-----------------------------^^-----------this should be monthNumber
另一件事,要验证您的输入,您只需检查您的数字是否在 1 到 12 之间,您不需要检查 lenght
如果是 > 12
或 < 1
你的月份是错误的,因为 1 和 12 是有效的月份(不要检查 <=
或 >=
)。
int number = Integer.parseInt(monthNumber);
if (number < 1 || number > 12) {
again = true;
throw new Exception();
}
编辑
注意两者:
int i1 = Integer.parseInt("01");
int i2 = Integer.parseInt("1");
给1一个有效的数字
我需要两个输入的 int 值。用户为一月写 1 或 01。
所以它确实适用于 1 - 12,但如果我写 01,它确实会给我自己的错误文本。
对我来说重要的是它是一个 int 值,我知道 String 是完美的。
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;
}
希望大家帮我验证一下这个问题。我看到很多 post 关于生成 01 数字的 for 循环,但这有点不同然后验证为用户输入。
你自己的错误是因为你没有使用正确的输入:
monthNumber = inputText();
int number = Integer.parseInt(monatZahl);
//-----------------------------^^-----------this should be monthNumber
另一件事,要验证您的输入,您只需检查您的数字是否在 1 到 12 之间,您不需要检查 lenght
如果是 > 12
或 < 1
你的月份是错误的,因为 1 和 12 是有效的月份(不要检查 <=
或 >=
)。
int number = Integer.parseInt(monthNumber);
if (number < 1 || number > 12) {
again = true;
throw new Exception();
}
编辑
注意两者:
int i1 = Integer.parseInt("01");
int i2 = Integer.parseInt("1");
给1一个有效的数字