ユーザーの args[] 入力が String か int かを区別するためにコーディングしているアプリケーションを作成しようとすると、問題が発生します。int 値を入力すると、共通の加算形式で一覧表示されて加算されます。String 値が args[] に入力された場合、無視された引数のリストが収集され (Strin[] は無視されます)、ユーザーが確認できるように出力されます。入力された値を int 値として解析し、この args[] String 値が実際に int であるかどうかを確認するネストされたループを使用してこれを区別しようとしていますが、プログラミングがかなり新しいため、かなりの障害にぶつかりました。助言がありますか?
これが私のコードです:
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)