【发布时间】:2018-11-08 06:04:05
【问题描述】:
我正在尝试制作一种压缩字符串的方法。例如,该方法将采用“ttttests”并返回“4te2st”。
当我运行该方法并打印结果时,我得到:“”
public class Compress {
public static String compress(String original){
int count = 1;
int oglength = original.length()-1;
StringBuilder newword = new StringBuilder("");
for(int i = 0; i < oglength; i = i+count){
count = 1;
for(int k = 1; k < oglength-k-i; k++){
if(original.charAt(i) == original.charAt(i+k)){
count++;
continue;
} else if(original.charAt(i) != original.charAt(i+k) && original.indexOf(original.charAt(i+k)) - original.indexOf(original.charAt(i)) > 1){
newword.append(newword);
newword.append(count);
newword.append(original.charAt(i));
break;
} else if(original.charAt(i) != original.charAt(i+k) && original.indexOf(original.charAt(i+k)) - original.indexOf(original.charAt(i)) == 1){
newword.append(newword);
newword.append(original.charAt(i));
count++;
break;
}
}
}
String returnword = newword.toString();
return returnword;
}
【问题讨论】:
-
您是否尝试打印出现的 char 值?如果是,那么根据您的输入,输出应该是 2s5t1e。
-
字符串保持相同的顺序,只有相同字符的连续字符串才会有该字符的出现次数。
标签: java string methods compression