当前位置: 代码迷 >> Java相关 >> 小问题求助,我是初学者!
  详细解决方案

小问题求助,我是初学者!

热度:119   发布时间:2006-03-29 12:01:00.0
小问题求助,我是初学者!

我是初学者,有个小问题求助:
/*创建一个程序,用于将两个整数值和一个运算符存储在相应的变量中,并执行必要的运算(使用switch语句)*/

class Operation1
{
public static void main (String args[])
{
int num = 0, num1 = Integer.parseInt (args[0]), num2 = Integer.parseInt (args[2]);
char operator1 = args[1].charAt(0);

switch (operator1)
{
case '+':
num = num1 + num2;
break;
case '-':
num = num1 - num2;
break;
case '*':
num = num1 * num2;
break;
case '/':
num = num1 / num2;
break;
case '%':
num = num1 % num2;
break;
}

System.out.print (String.valueOf (num1) + operator1 + String.valueOf (num2) + "=" + num);
}
}
程序内容如上;
但是运行的时候
如果我输入java Operation1 3 * 5
提示:
Exception in thread "main" java.lang.NumberFormatException:For input string:"Operation1.java"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Operation1.main(Operation1.java:7)
而如果“*”号用“+、-、/、%”代替则可以正常运行,请哪位高手有空的话帮个忙回答一下哈!

搜索更多相关的解决方案: switch  num  break  case  

----------------解决方案--------------------------------------------------------

你的程序会出现这个问题,是因为你不了解“*”的用法
它在java当中充当一个通配符的作用,而不是乘号
如果你要把它做为乘号用的话,你必须经它加上一个双引号(“*”)
这个你就可以正常用到乘法的功能了
java Operation1 3 "*" 5
就正常了


----------------解决方案--------------------------------------------------------
好的,谢谢阿~~
----------------解决方案--------------------------------------------------------
回复:(byf0138)小问题求助,我是初学者!
char operator1 = args[1].charAt(0);


你能把这一行和我说说吗?是什么意思啊?
args[1].为什么要加个1呢??
我是菜鸟,别笑我问的问题太菜啊
谢谢
----------------解决方案--------------------------------------------------------
char operator1 = args[1].charAt(0);
这表示从命令行的参数里面取第二个数(下标为1)
然后从这个数中取最前面那个字符(下标为0)

因为在JAVA中,下标都是从0开始的,所以取第n个数的时候,实际下标为(n-1)
----------------解决方案--------------------------------------------------------
回答的很出色!!
----------------解决方案--------------------------------------------------------
  相关解决方案