天使的城电视剧全集31:Java运行问题

来源:百度文库 编辑:高校问答 时间:2024/03/29 17:12:04
Exception in thread "main" java.lang.NumberFormatException: For input string:"aVal"
at java.lang.NumberFormatException.forInputString<NumberFormatException.java:48>
at java.lang.Integer.parseInt<Integer.java:468>
at java.lang.Integer.parseInt<Integer.java:518>
at Judge.main<Judge.java:17>
以上是当输入5个整数后的运行结果,但结果却错了,谁能告诉我为什么吗?
PS:本人欲编一个判断用户输入的5个整数中最大的一个,并令其输出到屏幕,由于是初学者,有很多不足,望高手指教!以下是本人编的源代码,哪错了请指出,并分析错误原因!本人现在仅20分而已啦!谢谢绝帮忙啦~!
//Judge.java

//Java extension package
import javax.swing.JOptionPane;

public class Judge{

public static void main(String args[])
{
int a,b,c,d,e;
String aVal,bVal,cVal,dVal,eVal;
aVal=JOptionPane.showInputDialog("Enter first integer");
bVal=JOptionPane.showInputDialog("Enter second integer");
cVal=JOptionPane.showInputDialog("Enter third integer");
dVal=JOptionPane.showInputDialog("Enter fourth integer");
eVal=JOptionPane.showInputDialog("Enter fifth integer");
a=Integer.parseInt("aVal");
b=Integer.parseInt("bVal");
c=Integer.parseInt("cVal");
d=Integer.parseInt("dVal");
e=Integer.parseInt("eVal");

if(a>b&&a>c&&a>d&&a>e)
JOptionPane.showMessageDialog(
null,"The max is "+a,"result 1",
JOptionPane.PLAIN_MESSAGE);
else
if(b>a&&b>c&&b>d&&b>e)
JOptionPane.showMessageDialog(
null,"The max is "+b,"result 2",
JOptionPane.PLAIN_MESSAGE);
else
if(c>a&&c>b&&c>d&&c>e)
JOptionPane.showMessageDialog(
null,"The max is "+c,"result 3",
JOptionPane.PLAIN_MESSAGE);
else
if(d>a&&d>b&&d>c&&d>e)
JOptionPane.showMessageDialog(
null,"The max is "+d,"result 4",
JOptionPane.PLAIN_MESSAGE);
else
JOptionPane.showMessageDialog(
null,"The max is "+e,"result 5",
JOptionPane.PLAIN_MESSAGE);
System.exit(0);

}

}

把下面的语句改一下:
a=Integer.parseInt("aVal");
b=Integer.parseInt("bVal");
c=Integer.parseInt("cVal");
d=Integer.parseInt("dVal");
e=Integer.parseInt("eVal");
去掉引号,即:
a=Integer.parseInt(aVal);
b=Integer.parseInt(bVal);
c=Integer.parseInt(cVal);
d=Integer.parseInt(dVal);
e=Integer.parseInt(eVal);
运行即可通过。

a=Integer.parseInt("aVal");
b=Integer.parseInt("bVal");
c=Integer.parseInt("cVal");
d=Integer.parseInt("dVal");
e=Integer.parseInt("eVal");
这样就相当于把字符串转化成整数,并且这些字符串又是不能被转化的所以出错。按“冰O火”说的再执行一次应该OK了!

顶下!

ding

向冰O火学习

ghng