gpt4 book ai didi

java - 检查字符串是否在一个数字范围内 Java

转载 作者:行者123 更新时间:2023-11-29 09:27:55 25 4
gpt4 key购买 nike

尝试设计一个简单的彩票程序。一切正常,除了检查输入的数字是否在 1 到 59 之间。

练习说数字必须存储在 String 变量中。

所以

if(num<0 || num>59) //wont work for me

尝试创建另一个变量

int numConverted = Integer.parseInt(num)

虽然我们没有在类里面介绍将 String 转换为 int,所以我认为这不是预期的。无论如何都对这种方式感到困惑,所以这可能是错误的。

这是我目前的代码。

{
Scanner scan = new Scanner(System.in);

String num=""; //num variable is empty untill user inputs numbers

for(int i =0; i<6; i++)
{
System.out.println("Enter your number between 1-59");
num = num +" "+ scan.nextLine();
}

System.out.println("Ticket printed £2. Your numbers are " + num);
}

最佳答案

在您发布的代码中,您显然希望用户提供 6 个特定数值。这些值附加到名为 num(以空格分隔)的字符串变量。您显然需要在这里做一些事情:

1) 确保用户提供的值确实是一个数值;

2) 确保提供的数值在彩票本身的最小和最大范围内(您声明的是:1到59);

3) 确保尚未提供用户输入的号码。

您的任务是将输入的值存储到 String 数据类型变量中,这一切都很好,但在某些时候您想要进行值比较以确保所有输入的值实际上都在彩票。

当用户完成他/她的条目时,您最终会在 num 字符串变量中保存一个空格分隔的字符串。您现在需要确保输入的这些值确实是……从 1 到 59 的数字,并且不包含字母字符。

在我看来(这只是因为您需要将输入的值存储到 String 变量中),最好使用 String 变量来收集用户输入,然后测试输入以确保它确实是一个实际的整数。一旦确定,我们将进行测试以确保是否落在最小/最大限制值 (1-59) 内。现在我们需要测试以确保输入的号码之前没有为这张票输入过。

当然,对于上述每项测试,如果测试失败,则应提示用户重新输入正确的值。您可以使用 while 循环来完成此操作。 StackOverflow 中有很多这样的例子,但这里有一个简单的例子:

Scanner scan = new Scanner(System.in);
String ticketNumbers = "";
for(int i = 0; i < 6; i++) {
Boolean isOK = false;
while (!isOK) {
System.out.println("\nPlease enter your desired 6 ticket numbers:\n"
+ "(from 1 to 59 only)");
String num = scan.nextLine();
//Is the string entered an actual integer number?
//We use the String.matches() method for this with
//a regular expression.
if(!num.matches("\\d+")) {
System.out.println("You must supply a numerical value! "
+ "Try Again...");
continue;
}
if (ticketNumbers.contains(num + " ")) {
System.out.println("The number you supplied has already been chosen!"
+ " Try Again...");
continue;
}
if (Integer.parseInt(num) >= 1 && Integer.parseInt(num) <= 59) {
ticketNumbers+= num + " ";
isOK = true;
}
else {
System.out.println("The number you supply must be from "
+ "1 to 59! Try Again...");
}
}
}
System.out.println("Ticket printed £2. Your numbers are " + ticketNumbers);

关于java - 检查字符串是否在一个数字范围内 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791584/

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