java中的数字格式异常



我写了一个split函数,它的构造函数接受一个String对象CCD_ 1。然后使用split((函数将其拆分为三部分。然后将这三个新的String Object转换为三个基元类型double。我想对这些双值执行一些算术运算,但它显示异常如下——

Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)

拆分功能如下——

public class Split {

public Split(String str){

Double[] lla = new Double[3];

    String[] parts=str.split("t");

lla[0] = Double.parseDouble(parts[0]);

lla[1] = Double.parseDouble(parts[1]);
 lla[2]= Double.parseDouble(parts[2]);
 lla[0]+=123.567;
 lla[1]+=12.456;
 lla[2]+=76.5678;
 System.out.println(lla[0]);
 System.out.println(lla[1]);
 System.out.println(lla[2]);
 System.out.println(); 
 }  
 }

请帮我解决这个问题。感谢

如果您使用的是java-8,请替换

String[] parts = str.split("t")

具有以下

String[] parts = Stream.of(str.split("\s"))       // Split at each whitespace
                       .filter(x -> !x.isEmpty())  // Exclude empty Strings
                       .toArray(String[]::new);    // Makes a new String array of it

为了确保不为空,String进入构造函数的解析部分。

此错误表示其中一个:parts[0]parts[1]parts[2]是空的String,并且不包含double值。因此Java无法将其解析为Double。检查要拆分的输入(For Example: 21.316621 87.01393 9830.686907)0以创建parts数组。

如果您不能修改输入,那么在解析parts数组之前,请检查并删除它们中的空值。

在这里检查一个工作和不工作的示例(抛出相同的错误(,以获得相同的方法但不同的输入。

相关内容

  • 没有找到相关文章

最新更新