Java parsing string
I'm looking to parse the following string in java
<some lines here>
Key1:thingIWantToKnow
Key2:otherThing
Key3:bla
Key4:bla
Key5:bla
<(possibly) more lines here>
All lines end with a newline (\n) charac开发者_如何转开发ter. I'm looking to store the value pair once I find the key's I'm care about.
If a Map is what you want:
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;
- If the data is in a String then you can use a StringReader to read one line of text at a time.
- For each line you read you can use String.startsWith(...) to see if you found one of your key lines.
- When you find a line containing key/value data then you can use String.split(...) to get the key/value data separately.
You can use StringUtils.split
http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html
If you're looking for lines that contain 'Key' after that, use StringUtils.contains
Not the fastest, but certainly the most convenient, and null-safe too.
精彩评论