有一个文本文件cost.txt,里面存放数据如下: 电脑,6400元/元 电视机,3689元/台 冰箱,7569元/台 书桌,3376元/台 手机,7735元/台 请用Scanner类和正则表达式解析出文件中的价格,计算总额,并在控制台输出。
时间: 2023-08-16 18:09:11 浏览: 42
好的,可以用如下代码实现:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
double total = 0;
try {
Scanner scanner = new Scanner(new File("cost.txt"));
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
Pattern pattern = Pattern.compile("(\\d+)元/\\S+");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
double price = Double.parseDouble(matcher.group(1));
total += price;
}
}
System.out.println("总价为:" + total + "元");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
```
这里使用了Scanner类来读取文件,并使用正则表达式匹配价格。总价通过累加每个价格得到。注意要处理文件不存在的情况。运行该程序,可以得到输出:总价为:28769.0元。