java:假设我们有一个文本文件dictionary.txt,文件的内容有两列,用冒号分开,第一列 为英文单词,第二列为中文解释,试编写一个程序,提供快速查询单词的功能,即从 键盘输入一个单词,输出对应的中文解释。 输入样例: good 输出样例: adj.好 的,善良的
时间: 2024-10-26 22:16:05 浏览: 22
在Java中,你可以通过以下步骤来实现这个功能:
1. 首先,你需要创建一个`BufferedReader`来读取文本文件。可以使用`FileReader`配合`BufferedReader`来打开并读取文件内容。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class DictionarySearch {
private static final String DICTIONARY_FILE = "dictionary.txt";
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader(DICTIONARY_FILE))) {
// 接下来的代码...
} catch (IOException e) {
System.out.println("Error reading file: " + e.getMessage());
}
}
//... 具体查找方法在这里
}
```
2. 创建一个方法来处理输入的单词并查找对应解释。遍历文件内容,将每一行分割成英文单词和中文解释,并存储在映射(例如`Map<String, String>`)中。如果单词存在,则返回对应的解释,不存在则提示未找到。
```java
private static Map<String, String> loadDictionary() throws IOException {
Map<String, String> dictionary = new HashMap<>();
String line;
while ((line = br.readLine()) != null) {
String[] parts = line.split(":");
if (parts.length == 2) {
dictionary.put(parts[0], parts[1]);
}
}
return dictionary;
}
public static String searchWord(String word) {
try (BufferedReader br = new BufferedReader(new FileReader(DICTIONARY_FILE))) {
Map<String, String> dictionary = loadDictionary();
return dictionary.get(word);
} catch (IOException e) {
return "Word not found";
}
}
```
3. 最后,在`main`方法中获取用户输入,调用`searchWord`函数并打印结果。
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word to look up: ");
String input = scanner.nextLine();
String result = searchWord(input);
System.out.println(result);
scanner.close();
}
```
如果你需要运行此程序,记得将上述代码放在`DictionarySearch`类内,并确保`dictionary.txt`文件位于项目的根目录下。运行程序后,按照提示输入单词即可查询解释。
阅读全文