ken*_*dds 0 java regex string parsing
我的问题:这是非常具体的.我正在考虑解析以下文本的最简单方法:
^^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^^
Run Code Online (Sandbox Code Playgroud)
每次都会出现这样的情况.一些要求:
我正在寻找像这样的代码:
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};
}
Run Code Online (Sandbox Code Playgroud)
我不知道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;
}
Run Code Online (Sandbox Code Playgroud)
这有什么不对:
如果我不得不这么做,我担心它会有点慢/笨重.所以我正在寻找任何提示/建议.
如果你必须做很多事情,我会制作一张地图,就像一些地图
Map<String, String> m = new HashMap<String, String>();
for (String s : stuff.split("\\^\\^")) // caret needs escaping
{
String[] kv = s.split("=");
m.put(kv[0]) = kv[1];
}
Run Code Online (Sandbox Code Playgroud)
然后查找你刚刚做的一把钥匙 m.get("key")
归档时间: |
|
查看次数: |
238 次 |
最近记录: |