我的这个文本文件(dis.txt)包含:
1="A" (Z75)(T118)(S140)
2="B" (U85)(G90)(F211)(P101)
3="C" (P138)(D120)(R146)
4="D" (M75)
这些数字是A和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"));
}
}
}
答案 0 :(得分:1)
当然,您需要先填充HashMap,然后才能从中获取任何数据。
在循环中,您要为每个属性读取值,请将数据放入Map
。
并且始终在abstract
上为reference type
使用LHS
类型。使用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));
}