在冗长的字符串中查找和替换特定字符串集的优化方法是什么?

时间:2014-01-29 15:20:50

标签: java string optimization replace

我需要模糊匹配参数的值

password, tokenID

示例查询字符串:

visitorNo=89&password=demo&tokenID=yxr56

应该被混淆为:

visitorNo=89&password=$$&tokenID=$$

我做了什么:

String[] parameters = queryString.split("&");
StringBuffer qS = new StringBuffer();
for(String param : parameters) {
    String[] keyValue = param.split("=");
    qS.append(keyValue[0]);
    qS.append("=");
    for(String paramToObfuscate : paramsToObfuscate) {
        if(paramToObfuscate.equals(keyValue[0])) {
            qS.append("$$");
        }
        else {
            qS.append(keyValue[1]);
        }
    }
    qS.append("&");
}

String queryStr = qS.toString().substring(0, qS.length-1);

1 个答案:

答案 0 :(得分:0)

只有两个参数,没有更快的方法。如果有数十个,你可以使用

Set<String> paramsToObfuscate = new HashSet<String>();

Set.contains,肯定比几十次测试快。