设计一个Java程序:完成:将一个采用默认字符集的文本文件中的所有的数值全部抽取出来,并存放到另个一个文本文件中。 如:文本文件t1.txt中内容是: g%^897HJKHjkhui897*()()89_)_l;,m67,as;l45m,l4;m 3674iJh*&*89njj90 12eas d23 45mk90 将文件中的数值全部抽取出来,放到文本文件t2.txt中: 897 897 89 l 67 l45 l4 3674 89 90 12 23 45 90设计一个Java程序:完成:将一个采用默认字符集的文本文件中的所有的数值全部抽取出来,并存放到另个一个文本文件中。 如:文本文件t1.txt中内容是: g%^897HJKHjkhui897*()()89_)_l;,m67,as;l45m,l4;m 3674iJh*&*89njj90 12eas d23 45mk90 将文件中的数值全部抽取出来,放到文本文件t2.txt中: 897 897 89 l 67 l45 l4 3674 89 90 12 23 45 90
时间: 2024-03-21 09:40:28 浏览: 52
可以使用Java的正则表达式来实现该功能。具体步骤如下:
1. 读取文本文件t1.txt中的所有内容,可以使用Java的FileReader和BufferedReader类来实现。
2. 使用正则表达式匹配所有的数值,可以使用Java的Pattern和Matcher类来实现。正则表达式可以使用\d+,表示匹配一个或多个数字。
3. 将匹配到的数值存放到一个List中。
4. 将List中的数值写入到文本文件t2.txt中,可以使用Java的FileWriter和BufferedWriter类来实现。
以下是具体的Java代码实现:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractNum {
public static void main(String[] args) {
String inputFile = "t1.txt";
String outputFile = "t2.txt";
List<String> nums = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(inputFile))) {
String line;
while ((line = reader.readLine()) != null) {
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
nums.add(matcher.group());
}
}
} catch (IOException e) {
e.printStackTrace();
}
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
for (String num : nums) {
writer.write(num);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
运行该程序后,会从t1.txt中抽取所有的数值,并将其存放到t2.txt中。
阅读全文