Java|字符串怎么通过split()方法取出数字求和?

有如下支出流水账,“书籍 79.6;蔬菜 21.8;水果 16;洗车费 20;”,
其中,一笔支出与另一笔支出之间由‘;’间隔,支出名称与金额之间由空格间隔。编程统计出支出的总金额并输出。
注1:当字符串只由’0’~’9’及’.’等字符构成,则可以使用Float.valueOf(String s)方法将该字符串数据转换为float类型数据,如表达式Float.valueOf(“123.78”),其结果为123.78f。
注2:此题最简单的思路是使用String类的split()方法来进行字符串拆分。支出流水账可能会很长,请使用循环完成总金额的统计。

  1. 先用;split字符串得到字符串数组。
  2. for循环遍历字符串数组,取处的字符串再用空格split,索引数组0 1取出名称和价格。

split()里面可以放多个分隔符的
你把空格和分号都作为分隔符
切出来的数组里偶数位置放的就是名称,奇数位置放的就是值
就这样
String[] a=s.split(' ',';');

String paid = "书籍 79.6;蔬菜 21.8;水果 16;洗车费 20;";
String[] paidStr = paid.split(";");
float money = 0f;
for(int i = 0;i<paidStr.length;i++){
money += Float.valueOf(paidStr[i].split(" ")[1]);
}
System.out.println("支出总金额为:" + money);

如有帮助望采纳

   String s="书籍 79.6;蔬菜 21.8;水果 16;洗车费 20;";
        String [] arr= s.split(";");
        Float total=0F;
        for (int i=0;i<arr.length;i++){
            String [] money=arr[i].split(" ");
           total+=Float.valueOf(money[1]) ;
        }
        System.out.println(total);   //137.4