java字符串值应在double.valueof(..)中使用

java字符串值应在double.valueof(..)中使用,java,string,double,Java,String,Double,我正在创建.jsp页面,并发现了错误 String energyv=""; int number= Integer.parseInt(request.getParameter("number")); energyv="_"+number; * * * if (tokenNumber == 2 && found && value1.equals("")) { v

我正在创建.jsp页面,并发现了错误

        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:30097错误http-8080-4 org.apache.catalina.core.ContainerBase.[catalina].[localhost].[PlantVisorPRO].[jsp] -Servlet jsp的Servlet.service()引发异常java.lang.NumberFormatException:对于输入字符串:“value2”位于 sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) 位于java.lang.Double.valueOf(Double.java:475)

Java可以创建我的值(比如value2或value1),但如何解决字符串问题呢

Double activeTotalLong = Double.valueOf( "value" + energyv );
此方法接受字符串中表示的有效数字

“value2”不是有效的数字格式

Double.valueOf()的用法示例:


因此,您要做的是,获取
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);
}

是的,谢谢你的回答。我试过数组函数。它正在发挥作用。
Double activeTotalLong;
if (energyv == 1)
{
    activeTotalLong = Double.valueOf(value1);
} else if (energyv == 2)
{
    activeTotalLong = Double.valueOf(value2);
}