Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串拆分为"|&引用;得到一个总数_Java_Regex - Fatal编程技术网

Java 将字符串拆分为"|&引用;得到一个总数

Java 将字符串拆分为"|&引用;得到一个总数,java,regex,Java,Regex,我有一个文件: 2 | BATH BE | 19.00 20312 | ORAN | 1.42 04520 | BOIL | 1.78 20000 | AV | 0.98 2007 | C 312 | 1.78 0452 | ONIOT BOILR H | 2.98 2042009 | C | 0.98 我想提取数字(19.00,1.42,1.78…)并从中求和 这就是我所做的: public void checkTotal() { int total_pric

我有一个文件:

2 | BATH BE | 19.00 20312 | ORAN | 1.42 04520 | BOIL | 1.78 20000 | AV | 0.98 2007 | C 312 | 1.78 0452 | ONIOT BOILR H | 2.98 2042009 | C | 0.98

我想提取数字(19.00,1.42,1.78…)并从中求和

这就是我所做的:

     public void checkTotal()
    {
        int total_price = 0;
        File file = new File(ItemUPC.txt");
        Scanner sc = new Scanner(file);
            while (sc.hasNextLine()) {
                String[] line = sc.nextLine().split("[|]");
                String price = line[2];
                total_price = total_price + Integer.parseInt(price);
        }
}
我得到的错误为:java.lang.NumberFormatException:对于输入字符串:“19.00”

它只提取看起来的第一个数字。 我想得到一个数字的和(19.00+1.42+0.98…同样)


知道我哪里出错了吗。谢谢:)

试试总价=总价+Double.parseDouble(价格)

整数中没有小数点。作为一个答案,Andy post似乎是正确的
19.0020312
既不是
int
也不是
double
。您需要在
\s+
上进一步拆分它,然后使用
Double.parseDouble
解析第一部分。但是,您可以使用
Integer.parseInt
解析第二部分。