2012-11-23 35 views
0

我有這個文本文件(dis.txt)包含:閱讀文本文件,並獲得距離值由HashMap中

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

這些數字是針對& 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")); 


    } 
    } 

    } 
+0

這是AI被Java – jangiz

+0

你在哪裏填充您的HashMap(人工智能)項目?? ......我看不到任何代碼:P – PermGenError

+0

但我的HashMap的 – jangiz

回答

1

當然,你需要填寫你的HashMap之前,你可以得到任何數據從它回來。

在循環中,您正在讀取每個屬性的值,將數據放入您的Map。 並在您的LHS上始終使用abstract類型爲您的reference type。使用Map而不是HashMap

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)); 
} 
+0

但爲什麼你使用這個拆分我有這個錯誤 – jangiz

+0

好吧,你的'abu'字符串包含什麼?它是否包含: - 「A(Z75)(T118)(S140)」?打印它並查看它包含的內容。 –

+0

你有什麼錯誤使用它? –