【问题标题】:Java parsing stringJava解析字符串
【发布时间】:2011-01-27 22:15:06
【问题描述】:
我希望在 java 中解析以下字符串
<some lines here>
Key1:thingIWantToKnow
Key2:otherThing
Key3:bla
Key4:bla
Key5:bla
<(possibly) more lines here>
所有行都以换行符 (\n) 结尾。一旦找到我关心的密钥,我希望存储值对。
【问题讨论】:
标签:
java
parsing
delimiter
【解决方案1】:
如果地图是你想要的:
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;
【解决方案2】:
- 如果数据在字符串中,那么您可以使用 StringReader 一次读取一行文本。
- 对于您阅读的每一行,您都可以使用 String.startsWith(...) 查看是否找到了您的关键行之一。
- 当您找到包含键/值数据的行时,您可以使用 String.split(...) 分别获取键/值数据。