1
使用以下代碼,我能夠從表單中獲取所有必要的信息,該信息是;拆分正則表達式的結果
n = 5
p = 0.5
lambda = 0.3
d = 1
n = 8
p = 0.1
d = 1
p = 0.3
我把所有這些信息放在一個HashMap中,但我實際需要的是6個hashmaps;這樣
Hashmap 1
n = 5
p = 0.5
Hashmap 2
lambda = 0.3
Hashmap 3
d = 1
Hashmap 4
n = 8
p = 0.1
Hashmap 5
d = 1
Hashmap 6
p = 0.3
換句話說,總是當我正爲關鍵字,下一個關鍵字和值也應存放在此HashMap,這一個關鍵詞將永遠是一個頁。
我知道這是不是真的有可能分裂一個HashMap,但我無法找到任何其他方式
非常感謝
public static void main(String[] args) throws FileNotFoundException, IOException
{
File filename = new File("H:\\NetBeansProjects\\thesis2.0\\src\\thesis2\\pkg0\\txt-files\\formulier.txt");
try (BufferedReader in = new BufferedReader(new FileReader(filename)))
{
HashMap hm = new HashMap();
Pattern p = Pattern.compile("\\s+(\\w+)\\s+([0-9.]+)\\s*");
for (String line; (line = in.readLine()) != null;)
{
Matcher m = p.matcher(line);
if (m.matches())
{
String keyword = m.group(1);
String parameter = m.group(2);
hm.put(m.group(1),m.group(2));
System.out.println(m.group(1) + " = " + m.group(2));
}
}
}
}
感謝您的回答,我想知道這是否會工作,因爲在列表中他們總是添加一個地圖workingChild,這不會覆蓋以前製作的Hashmap,也稱爲workingChild? – StudentX
@StudentX [Java始終按值傳遞](http://stackoverflow.com/a/40499/1542723),所以我們生成的HashMap將被放入列表中,然後我們可以重用參考'workingChild'而不會影響列表中的地圖。 – Ferrybig