我在編寫應用程序時遇到困難,以區分用戶的args []輸入是字符串還是int。如果鍵入了一個int值,它將以常見的添加格式列出並添加。如果將一個字符串值輸入到args []中,則會收集忽略參數的列表(忽略了Strin []),並將打印供用戶查看。我試圖通過嵌套循環來區分這種情況,這些循環解析了作爲int值輸入的值,並檢查這個args []字符串值是否確實是一個整數,但是在編程方面相當新穎,我碰到了很多障礙。有什麼建議麼?Integer.parseInt混淆
這裏是我的代碼:
public class Addition {
public static void main(String args[]) {
int sum = 0;
String[] ignored = new String[args.length];
if(args.length == 0) {
System.out.println("No input values!");
} else {
for(int i = 0; i < args.length; i++) {
if(Character.isDigit(Integer.parseInt(args[i]))) {
sum += Integer.parseInt(args[i]);
if(i == 0) {
System.out.print(args[i]);
} else if(Integer.parseInt(args[i]) >= 0) {
System.out.print(" + " + args[i]);
} else if(Integer.parseInt(args[i]) < 0) {
System.out.print(" - " + (Integer.parseInt(args[i]) * -1));
}
} else if(!Character.isDigit(Integer.parseInt(args[i]))) {
ignored[i] = args[i];
}
} System.out.print(" = " + sum);
}
}
}
我得到這個相互作用錯誤:
java.lang.NumberFormatException: For input string: "-"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Addition.main(Addition.java:17)
即使您的代碼確實工作,在int上調用Character方法也沒有多大意義。 –
除非int是一個char的Unicode表示形式,而你不是。首先找出你的邏輯,然後寫出代碼。 –
我想讓應用程序區分用戶放入的值是String還是int值。任何實際的建議或解釋爲什麼它沒有意義? – Saffioti