用Java实现读入一个文本并将单词提出来
时间: 2024-10-09 10:06:19 浏览: 19
在Java中,我们可以使用`java.io`包下的`BufferedReader`类配合`split()`方法来读取文本文件并提取单词。以下是简单的步骤:
1. 首先,创建一个FileInputStream或者FileReader来打开文件:
```java
File file = new File("your_file.txt"); // 替换为你要读取的实际文件路径
BufferedReader reader = new BufferedReader(new FileReader(file));
```
2. 使用循环逐行读取文件内容:
```java
String line;
while ((line = reader.readLine()) != null) {
// 对每一行进行处理
}
```
3. 对每一行使用`split()`方法分割成单词列表,这里我们通常会按空格分割:
```java
String[] words = line.split("\\s+"); // "\\s+"匹配一个或多个空白字符,包括空格、制表符等
```
4. 然后可以遍历单词数组,打印或存储它们:
```java
for (String word : words) {
System.out.println(word);
}
```
5. 最后别忘了关闭流资源:
```java
reader.close();
```
相关问题
java 对读入的某个文本文件input.txt中,拆出英文单词,输出一个按字典顺序排列的单
要解决这个问题,可以使用Java的文件处理和字符串处理功能。
首先,需要通过Java的文件输入流读取文本文件input.txt中的内容。可以使用BufferedReader类来实现该功能。然后,逐行读取文件内容,将每行内容存储在一个字符串变量中。
接下来,需要将每行内容拆解为单词。可以使用Java的字符串分割方法split(),通过指定空格作为分隔符,将每行内容拆分为一个单词数组。
然后,创建一个集合(例如ArrayList)来存储所有的单词。遍历每个单词,使用add()方法将其添加到集合中。
最后,对集合进行排序。可以使用Collections类的sort()方法对集合进行排序,按照默认的字母顺序对单词进行排序。
最后,遍历排序后的集合,将单词逐个输出,得到按字典顺序排列的单词列表。
以下是一个简单的Java代码示例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortWords {
public static void main(String[] args) {
String filePath = "input.txt";
List<String> words = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
String[] splittedWords = line.split(" ");
for (String word : splittedWords) {
words.add(word);
}
}
} catch (IOException e) {
e.printStackTrace();
}
Collections.sort(words);
for (String word : words) {
System.out.println(word);
}
}
}
请注意,以上示例代码仅为演示目的,未做输入验证和异常处理等边界情况处理,请在实际使用中根据需要进行完善。
使用java代码实现一个敏感词过滤
使用 Java 代码实现敏感词过滤可以采用以下步骤:
1. 建立一个存储敏感词的 Set 集合。
2. 读入需要过滤的文本。
3. 遍历文本中的每一个单词,如果是敏感词就替换成其他字符。
下面是一个示例代码:
```java
import java.util.HashSet;
import java.util.Scanner;
public class SensitiveWordFilter {
private static final String DEFAULT_REPLACEMENT = "***";
private HashSet<String> sensitiveWords = new HashSet<>();
public SensitiveWordFilter(String[] sensitiveWords) {
for (String sensitiveWord : sensitiveWords) {
this.sensitiveWords.add(sensitiveWord);
}
}
public String filter(String text) {
StringBuilder result = new StringBuilder();
String[] words = text.split(" ");
for (String word : words) {
if (sensitiveWords.contains(word)) {
result.append(DEFAULT_REPLACEMENT + " ");
} else {
result.append(word + " ");
}
}
return result.toString().trim();
}
public static void main(String[] args) {
SensitiveWordFilter filter = new SensitiveWordFilter(new String[] { "敏感词1", "敏感词2", "敏感词3" });
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
System.out.println(filter.filter(text));
}
}
```
这是一个简单的敏感词过滤实现,用户可根据实际需求进行更改或优化.
阅读全文