0

我有这个文本文件(dis.txt)包含:

    1="A" (Z75)(T118)(S140)
    2="B" (U85)(G90)(F211)(P101)
    3="C" (P138)(D120)(R146)
    4="D" (M75)

这些数字是距离,例如 A 和 Z 之间的距离是 75

我不会通过java程序读取这些距离和城市,如(Z75)(T118)(S140)我认为HashMap在我创建HashMap之后对我的问题有好处,正如你所看到的我写了myMap.get(“A”); 我不会给我结果 (Z75)(T118)(S140) 。我希望你能理解我的问题谢谢..

    import java.io.FileInputStream;
    import java.util.HashMap;
    import java.util.Properties;

    public class nodes {

    public static void main(String[] args) {

    Properties pro = new Properties();
    {

    try {
    pro.load(new FileInputStream("dis"));
    } catch (Exception e) {
    System.out.println(e.toString());
    }
    for (int i = 0; i <= 13; i++) {
    String abu = pro.getProperty("" + i);
    //System.out.println(abu);
    }
    HashMap<String, String> myMap = new HashMap<String, String>();
    myMap.get("A");
    myMap.get("B");
    myMap.get("C");
    myMap.get("D");


    System.out.println(myMap.get("A"));
    System.out.println(myMap.get("B"));
    System.out.println(myMap.get("C"));
    System.out.println(myMap.get("D"));


    }
    }

    }
4

1 回答 1

1

当然,您需要先填充 HashMap,然后才能从中获取任何数据。

在循环中,您正在读取每个属性的值,将数据放入您的Map. 并且始终在您abstract的. 使用而不是.reference typeLHSMapHashMap

Map<String, String> myMap = new HashMap<String, String>();

for (int i = 1; i <= 13; i++) {  // Start loop from 1, as properties in txt file are from 1
    String abu = pro.getProperty("" + i);  

   // Split the string on space, and put 1st and 2nd element of array 
   // as `key-value` pair in HashMap
   String[] arr = abu.split(" ");
   myMap.put(arr[0], arr[1]);
}

// Now you can fetch the data
for (String str: myMap.keySet()) {
     System.out.println(myMap.get(str));
}
于 2012-11-23T21:05:12.597 回答