Java 如何在循环内将字符串转换为浮点

Java 如何在循环内将字符串转换为浮点,java,string,floating-point,Java,String,Floating Point,我必须将字符串转换为float我是这样做的: float[] iLongs = new float[mLongs.length]; for(int i = 0; i < iLongs.length ; i++){ iLongs[i] = Float.valueOf(mLongs[i]).floatValue(); } float[]iLongs=新浮点[mLongs.length]; 对于(int i=0;i

我必须将字符串转换为float我是这样做的:

float[] iLongs = new float[mLongs.length];
for(int i = 0; i < iLongs.length ; i++){
    iLongs[i] = Float.valueOf(mLongs[i]).floatValue();
}   
float[]iLongs=新浮点[mLongs.length];
对于(int i=0;i
但它抛出numberformat异常

但是如果我在任何循环外使用相同的函数,它就会工作。
怎么办?

代码看起来不错,这让我怀疑这是数据问题。您需要验证MLONG的每个索引是否包含一个实际上作为浮点值有效的字符串,如何做到这一点取决于您。

您的代码没有问题。
发生异常,因为字符串不是浮点,无法分析。最常见的错误是-,而不是。

您在语法上是正确的。我认为问题出在长句上。它可能包含一些字母字符

备选代码:

class StringToFloat  {    
  public static void main (String[] args)   {     

    // String s = "hello";    // do this if you want an exception
    String s = "100.00";

    try {
      float f = Float.valueOf(s.trim()).floatValue();
      System.out.println("float f = " + f);
    }
    catch (NumberFormatException e) {
      System.out.println("NumberFormatException: " + e.getMessage());
    }
  }
}

// Output :float f = 100.0

你为什么不使用?是什么字符串导致了
NumberFormatException
?这与循环无关,而与
mLongs
中字符串的值有关。我认为在将
string Array
转换为“Float Array”时,应该包含生成
mLongs
的代码,以便我们可以重现问题。这将有助于我们抓住问题的核心。