我的问题:这是非常具体的。我试图想解析以下文本的最简单的方法:如何解析name = value ^^ name = value ^^ name = value
^^domain=domain_value^^version=version_value^^account_type=account_type_value^^username=username_value^^password=password_value^^type=type_value^^location=location_value^^id=xxx^^cuid=cuid_value^^
它会出现,每次酷似。一些要求:
- 并非所有这些键值对都会出现在每次。
- 他们可能会以不同的顺序
我正在寻找的代码是这样的:
private String[] getKeyValueInfo(String allStuff) {
String domain = someAwesomeMethod("domain", allStuff);
String version = someAwesomeMethod("version", allStuff);
String account_type = someAwesomeMethod("account_type", allStuff);
String username = someAwesomeMethod("username", allStuff);
String password = someAwesomeMethod("password", allStuff);
String type = someAwesomeMethod("password", allStuff);
String location = someAwesomeMethod("location", allStuff);
String id = someAwesomeMethod("id", allStuff);
String cuid = someAwesomeMethod("cuid", allStuff);
return new String[] {domain, version, account_type, username, password, type, location, id, cuid};
}
什么我不知道是什么someAwesomeMethod(String key, String allStuff)
应包含的内容。
我在想什么:事情是这样的:
private String someAwesomeMethod(String key, String allStuff) {
Pattern patt = Pattern.compile("(?i)^^" + key + "=(.*?)^^", Pattern.DOTALL);
Matcher matcher = patt.matcher(allStuff);
if (matcher.find()) {
return matcher.group(1);
}
return null;
}
有什么不妥:
我担心它会是如果我不得不有点慢/累赘做这个很多。所以我正在寻找任何提示/建议。
我把它['String.split()'](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String .html#split%28java.lang.String%29)不会漂浮你的船吗? –
@RobertHarvey'.split()'仍然使用正则表达式,你仍然必须解析出键和参数。 – NullUserException
没关系。只需在'“=”'上重新分割每个分割。 –