我是一個絕對的初學者,沒有任何編程語言的經驗。輸入字符串而不是整數(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