我正在尝试找到最简洁的方法来执行基于模式的游程编码。目标是通过分解由几个相同模式组成的子字符串来压缩字符串。
原始字符串:
start{3}{3}{3}{3}end
如您所见,有 4 个 " {3}
" 模式。可以通过将 4 个 " {3}
" 模式的运行表示为$4{3}
.
我想获得的压缩字符串:
start$4{3}end
我试过这个String.replaceAll(regex, replacement)
方法。我知道myString.replaceAll("\\{([^<])\\}", "$1")
它只能用它的值替换整个模式,但我找不到如何使用正则表达式检测和计算相同模式的运行长度。
使用正则表达式是个好主意还是有其他“更好”的方法来做到这一点?