我正在创建.jsp页面并对其进行reiceve错误;
String energyv="";
int number= Integer.parseInt(request.getParameter("number"));
energyv="_"+number;
*
*
*
if (tokenNumber == 2 && found && value1.equals("")) {
value1= nextToken;
if (value1.equals(""))
found = false;
}
if (tokenNumber == 3 && found && value2.equals("")) {
value2= nextToken;
}
*
*
*
Double activeTotalLong = Double.valueOf( "value" + energyv );
*
*
*
当尝试这样做时,我收到了tomcat错误;
2012年8月2日11:17:30,097 ERROR http-8080-4 org.apache.catalina.core.ContainerBase。[卡塔利娜]。[本地主机]。[/ PlantVisorPRO]。[JSP] - 用于servlet jsp的Servlet.service()抛出异常java.lang.NumberFormatException:对于输入字符串:“value2”at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) 在java.lang.Double.valueOf(Double.java:475)
Java可以创建我的值(比如value2或value1),但是如何修复字符串问题呢?
答案 0 :(得分:2)
Double activeTotalLong = Double.valueOf( "value" + energyv );
此方法采用字符串表示的有效数字。
"值2"不是有效的数字格式。
Double.valueOf()的示例用法:
Double d;
d = Double.valueOf("23.72");
d = Double.valueOf("-1.247002");
d = Double.valueOf("1e9"); // e = *10^()
因此,您要做的是获取value2
或value1
的值。而你实际写的是
"value" + 2
= "value2" // This is a string! not a variable!
因此,要解决此问题,有两种选择:
使用数组:
String values[] = new String[2];
values[0] = value1;
values[1] = value2;
Double.valueOf(values[energyv - 1]);
使用if-else:
Double activeTotalLong;
if (energyv == 1)
{
activeTotalLong = Double.valueOf(value1);
} else if (energyv == 2)
{
activeTotalLong = Double.valueOf(value2);
}