我在尝试制作我正在编码的应用程序以区分用户的 args[] 输入是字符串还是 int 时遇到了困难。如果输入了一个 int 值,它将被列出并以常见的添加格式添加。如果在 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)