我的教授非常沮丧,因为她没有教尝试和捕捉概念,她也没有教我们抛出异常,所以我很难做这个程序。 目标是创建一个程序,要求用户输入一个整数,打印“Hello World”多次整数。问题是我无法检查以确保用户输入是整数。例如,如果用户选择键入字符或 double ,我该如何将其实现到我的代码中?我不能使用抛出异常或尝试抓住因为我们还没有学习它们。谢谢你们!
import java.util.Scanner;
public class PrintHelloWorld
{
public static void main( String[] args )
{
Scanner scan = new Scanner(System.in);
int number;
System.out.println("Please enter an integer that shows the " +
"number of times to print \"Hello World\" : ");
//store count
number = scan.nextInt();
System.out.print("Your integer is " + number);
int remainder = number%1;
int counts = 0;
if( number>0 && remainder == 0)
{
while(counts <= number)
{
System.out.println("Hello World!");
counts++;
}
}
else
System.out.print("Wrong, choose an integer!");
}
}
答案 0 :(得分:2)
scan.hasNextInt()
将检查输入流中的下一个值是否为整数。
因此:
int number = -1;
System.out.println("Please enter an integer that shows the " +
"number of times to print \"Hello World\" : ");
//store count
if (scan.hasNextInt()) number = scan.nextInt();
if (number != -1) System.out.print("Your integer is " + number);
答案 1 :(得分:2)
您可以使用循环并使用正则表达式验证输入,如下所示:
Scanner scan = new Scanner(System.in);
String input = null;
while (true) {
input = scan.nextLine();
if (input.matches("\\d+")) {
break;
}
System.out.println("Invalid input, please enter an integer!");
}
int number = Integer.parseInt(input);
这将继续询问输入,直到输入有效整数。
答案 2 :(得分:1)
我不能使用throw异常或尝试捕获因为我们没有 学习它们。
首次尝试时,您可以创建一个接受String作为参数的方法。您将循环遍历此String的所有字符,并检查每个字符是否为数字。当此方法返回false
时,请重新询问用户输入新内容。
然后使用Integer.valueOf
获取int
值..
public static boolean isNumber(String input)
sc.nextLine()
来获取输入Character.isDigit
和toCharArray()
将非常有用