2011-01-27 15 views
3

我期待解析以下字符串在java中的Java

<some lines here> 
Key1:thingIWantToKnow 
Key2:otherThing 
Key3:bla 
Key4:bla 
Key5:bla 
<(possibly) more lines here> 

所有的線用換行符(\ n)字符結束解析字符串。一旦找到我關心的密鑰,我正在尋找儲值對。

+5

好的。你試過什麼了? –

+0

解析如何?你想把它們分成key:value對嗎? –

回答

3

如果地圖是你想要什麼:

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

String[] lines = input.split("\n"); 
if (lines == null) { 
    //Compensate for strange JDK semantics 
    lines = new String[] { input }; 
} 

for (String line : lines) { 
    if (!line.contains(":")) { 
    //Skip lines that don't contain key-value pairs 
    continue; 
    } 
    String[] parts = line.split(":"); 
    keyValueMap.put(parts[0], parts[1]); 
} 

return keyValueMap; 
3
  1. 如果數據在字符串中,那麼您可以使用StringReader一次讀取一行文本。
  2. 對於您閱讀的每一行,您都可以使用String.startsWith(...)來查看您是否找到了其中一條關鍵線。
  3. 當您找到包含鍵/值數據的行時,則可以使用String.split(...)分別獲取鍵/值數據。