通过hashmap从文本文件中检索变量

时间:2017-06-06 05:10:15

标签: java arrays string multidimensional-array hashmap

我正在为一个项目创建一个学校计划,在该项目中,我将文字和翻译写入文件(由一个字符分隔)。我已经读过,我可以通过哈希映射将它们读入数组。我只是想知道是否有人可以指出我正确的方向如何做到这一点。

如果有人更好地了解如何存储和检索我想要学习的单词。我写入文件的原因是用户可以存储任意数量的单词。

非常感谢你:D

3 个答案:

答案 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);

    }