我正在为一个项目创建一个学校计划,在该项目中,我将文字和翻译写入文件(由一个字符分隔)。我已经读过,我可以通过哈希映射将它们读入数组。我只是想知道是否有人可以指出我正确的方向如何做到这一点。
如果有人更好地了解如何存储和检索我想要学习的单词。我写入文件的原因是用户可以存储任意数量的单词。
非常感谢你:D
答案 0 :(得分:0)
您可以使用java.util.HashMap
存储用户词和相关翻译:
String userWord = null;
String translation = null, translation1 = null;
Map<String, String[]> map = new HashMap();
map.put(userWord, new String[] { translation, translation1 });
String[] translations = map.get(userWord);
此map
可让您将单个userWord
映射到多个翻译。
答案 1 :(得分:0)
以下是学习如何使用BufferedReader的参考:BufferedReader
以下是学习如何使用FileReader的参考:FileReader
offset...fetch next
我还是新手,对import java.io.*;
class YourClass
{
public static void main() throws IOException
{
File f = new File("FilePath"); // Replace every '\' with '/' in the file path
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String line = "";
String FileString = "";
while((line = br.readLine()) != null)
{
// Now 'line' contains each line of the file
// If you want, you can store the entire file in a String, like this:
FileString += line + "\n"; // '\n' to register each new line
}
System.out.println(FileString);
}
} // End of class
了解不多,但我可以告诉你如何将它存储在String数组中:
HashMap
FileString = FileString.replaceAll("\\s+", " ");
String[] Words = FileString.split(" ");
- 用1个空格替换1个或多个空格,以避免任何逻辑错误。
FileString.replaceAll("\\s+", " ")
- 返回由空格分隔的每个String的String数组。
答案 2 :(得分:0)
您可以尝试这样的事情
File f = new File("/Desktop/Codes/Text.txt");
// enter your file location
HashMap<String, String[]> hs = new HashMap<String, String[]>();
// throw exception in main method
Scanner sc = new Scanner(f);
String s="";
while(sc.hasNext()){
s = sc.next();
// create a method to search translation
String []trans = searchTrans(s);
hs.put(s, trans);
}