Java:用哈希值替换字符串的所有匹配子字符串

标签 java regex replace substring

我想将字符串的所有匹配子字符串替换为它们的哈希值。

假设我有一个像这样的字符串

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/

相关文章:

java - 如何在 Android Studio 中添加 commons-math 库

java - 如何在循环的服务器请求中使用 Phaser?

javascript - 使用数组中的保留字符创建正则表达式

regex - Lua 模式类似于正则表达式正向前瞻?

regex - 匹配除包含 '_iq_' 以外的所有内容

Java 线程和 JTabbedPane 困境

java - 使用 for 循环解析 XML 文件

Java Hangman 游戏 - 替换角色

java - 使用 java 更新 apk 内的文件

powershell - 为什么 -replace 没有按预期工作?