我想将字符串的所有匹配子字符串替换为它们的哈希值。
假设我有一个像这样的字符串
String myString = "This is a A1B4F string with some 342BF matches FFABC that should be replaced.";
现在我想将所有匹配的字符串替换为正则表达式(例如此处的“([a-fA-F\d]{5})”)及其哈希值。
假设有一个 sting 方法,它获取子字符串作为参数并返回其 sha1 值
public static String giveMeTheSha1Of(String myClearText){
return ....; (the sha1 value of the string)
}
如何找到所有匹配的子字符串,并用它们的哈希值替换它们?
最佳答案
谢谢 Rohit Jain 和 Marko Topolnik。通过您的评论,我找到了我正在寻找的东西。
public static String replace5CharHex(String input){
String REGEX = "([a-fA-F\\d]{5})";
String tmpSubstring = "";
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(input);
StringBuffer sb = new StringBuffer();
while (m.find()) {
tmpSubstring = hashManager.createNewHash(m.group());
m.appendReplacement(sb, tmpSubstring);
}
m.appendTail(sb);
return sb.toString();
}
关于Java:用哈希值替换字符串的所有匹配子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160895/