【发布时间】:2019-05-18 16:06:18
【问题描述】:
我目前正在为文本压缩实现运行长度编码,我的算法确实返回以下形式的字符串:
假设我们有一个字符串作为输入
"AAAAABBBBCCCCCCCC"
然后我的算法返回
"1A2A3A4A5A1B2B3B4B1C2C3C4C5C6C7C8C"
现在我想应用Java String split 来解决这个问题,因为我想得到字符对应的最大数字。对于我们的示例,它将是
"5A4B8C"
下面可以看到我的功能
public String getStrfinal(){
String result = "";
int counter = 1;
StringBuilder sb = new StringBuilder();
sb.append("");
for (int i=0;i<str.length()-1;i++) {
char c = str.charAt(i);
if (str.charAt(i)==str.charAt(i+1)) {
counter++;
sb.append(counter);
sb.append(c);
}
else {
counter = 1;
continue;
}
}
result = sb.toString();
return result;
}
【问题讨论】:
-
我有一个更新的答案,它处理字符串行中的数字看看
标签: java string run-length-encoding