在下面的代碼中,如何更改持續顯示的消息(「C++」);根據數組的元素,根據 ?爲什麼會發生?爲什麼消息不會改變?NumberFormatException消息不會更改?
import java.util.*;
public class Testslsl {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
String languages[] = {"C", "C++", "Java", "Perl","Python" };
int num;
for (int c = 0; c <= 5; c++) {
try {
System.out.println(languages[c]);
if (languages[c].charAt(2)=='+')
System.out.println("it is C plus plus");
num = Integer.parseInt(languages[1]);
}
catch (NumberFormatException e) {
System.out.println(e);
input.next();
}
catch (ArrayIndexOutOfBoundsException ex) {
System.out.println(ex);
}
catch (StringIndexOutOfBoundsException exp) {
System.out.println(exp);
}
}
}
}
輸出:
C
java.lang.StringIndexOutOfBoundsException: String index out of range: 2
C++
it is C plus plus
java.lang.NumberFormatException: For input string: "C++"
Java
java.lang.NumberFormatException: For input string: "C++"
Perl
java.lang.NumberFormatException: For input string: "C++"
Python
java.lang.NumberFormatException: For input string: "C++"
java.lang.ArrayIndexOutOfBoundsException: 5
'語言[1]''是 「C++」',這不是一個'int'所以並不清楚你'num'期待什麼樣的價值。 –
我知道,但爲什麼異常的消息(C++)不斷顯示,但元素更改! – user6162628
一種是'語言[c]'另一種是'語言[1]',你是否看到了區別? –