我是一个绝对的初学者,没有任何编程语言的经验。输入字符串而不是整数(Java)
我写了一个程序作为将阿拉伯数字转换成罗马数字的练习。有用。不过,如果输入字符串而不是整数,我想添加一个用于处理问题的部分。不知道如何做到这一点。我试图使用try/catch,但我不知道如何正确使用它。现在程序要我两次输入一个数字。该怎么办?
这里是他的主要方法:
public static void main(String[] args) {
int numArabic;
boolean validEntry;
try {
System.out.println("Enter an integer number between 1 and 3999!");
Scanner scan = new Scanner(System.in);
numArabic = scan.nextInt();
validEntry = true;
} catch (InputMismatchException e) {
System.out.println("Entered value is not an integer!");
}
System.out.println("Enter an integer number between 1 and 3999!");
Scanner scan = new Scanner(System.in);
numArabic = scan.nextInt();
if ((numArabic < 1) || (numArabic > 3999)) {
System.out.println();
System.out.print("Wrong number. ");
System.out.print("Enter an integer number between 1 and 3999!");
System.out.println();
}
else {
String numRoman1 = toRomanOne(numArabic % 10);
String numRoman2 = toRomanTwo(((numArabic/10) % 10));
String numRoman3 = toRomanThree(((numArabic/100) % 10));
String numRoman4 = toRomanFour(numArabic/1000);
System.out.print("The number " + numArabic + " is equal to: ");
System.out.print(numRoman4+numRoman3+numRoman2+numRoman1 + ".");
}
}
现在程序要我两次输入一个数字。那是因为你在做 - System.out.println(“输入1到3999之间的整数!”); Scanner scan = new Scanner(System.in); numArabic = scan.nextInt();两次 – TheLostMind
运行: 输入1到3999之间的整数! jjk 输入的值不是整数 输入1到3999之间的整数! KKJ 异常在线程 “主” java.util.InputMismatchException \t在java.util.Scanner.throwFor(Scanner.java:864) \t在java.util.Scanner.next(Scanner.java:1485) \t在java.util.Scanner.nextInt(Scanner.java:2117) \t在java.util.Scanner.nextInt(Scanner.java:2076) \t在arabictoroman.ArabicToRoman.main(ArabicToRoman.java:35) Java结果:1 – maxval
“那是因为你在做 - System.out.println(”输入1到3999之间的整数!“); Scanner scan = new Scanner(System.in); numArabic = scan.nextInt();两次”好的,但该怎么办?如果我不再问它,我会得到“变量未初始化”。 – maxval