gpt4 book ai didi

java - 验证月份输入 01 和 1?

转载 作者:行者123 更新时间:2023-11-30 06:45:01 25 4
gpt4 key购买 nike

我需要两个输入的 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;

}

希望大家能帮我验证一下这个问题。我看到很多关于用 for 循环生成 01 数字的帖子,但这与验证用户输入有点不同。

最佳答案

您会收到自己的错误,因为您没有使用正确的输入:

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 一个有效的号码

关于java - 验证月份输入 01 和 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com