希望评论这是否是解析特定键的竖线分隔字符串的最佳/推荐方法。
在针对每个请求运行此操作的低延迟系统中 - 低效率是昂贵的。
public String extractFields(String key,String comment){
if(comment!=null){
for(String test:comment.split("\\|")){
if(test.contains(key)){
return test.substring(test.indexOf(key)+key.length()).trim();
}
}
}
return null;
}
答案 0 :(得分:0)
为什么不:
indexOf()
获取其位置的密钥,测试这是否有效indexOf()
到下一个|
答案 1 :(得分:0)
根据Nim的回答,这是实现更快捷方式的实现:
public String extractField(String key, String comment) {
if (key == null || comment == null)
return null;
int i = comment.indexOf(key);
if (i < 0) // Does not contain the key
return null;
String result = comment.substring(i + 1);
i = result.indexOf('|');
if (i >= 0)
result = result.substring(0, i);
return result;
}