Cri*_*ian 12 java compression string loops
我需要创建一个接收String的方法,并返回一个String.
输入:AAABBBBCC
Ex输出:3A4B2C
嗯,这是非常尴尬的,我无法在今天的采访中做到这一点(我申请了一个初级职位),现在,在家里尝试我做了一些静态工作,我的意思是,不使用循环这是一种无用的但我不知道我是否没有得到足够的睡眠或其他什么,但我无法弄清楚我的for循环应该是什么样子.这是代码:
public static String Comprimir(String texto){
StringBuilder objString = new StringBuilder();
int count;
char match;
count = texto.substring(texto.indexOf(texto.charAt(1)), texto.lastIndexOf(texto.charAt(1))).length()+1;
match = texto.charAt(1);
objString.append(count);
objString.append(match);
return objString.toString();
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助,我正在努力提高自己的逻辑技能.
n00*_*gon 11
循环通过字符串记住你上次看到的内容.每次看到相同的字母数.当你看到一封新的信件时,你把你计算的数字放在输出上,并将新信件设置为你上次看到的字母.
String input = "AAABBBBCC";
int count = 1;
char last = input.charAt(0);
StringBuilder output = new StringBuilder();
for(int i = 1; i < input.length(); i++){
if(input.charAt(i) == last){
count++;
}else{
if(count > 1){
output.append(""+count+last);
}else{
output.append(last);
}
count = 1;
last = input.charAt(i);
}
}
if(count > 1){
output.append(""+count+last);
}else{
output.append(last);
}
System.out.println(output.toString());
Run Code Online (Sandbox Code Playgroud)
您可以使用以下步骤执行此操作:
StringBuilder(你这样做了)previousChar和counterstr.length()- 1循环str.charat(i)中存储的内容进行比较previousCharcounter + currentChar,重置计数器previousChar类似的事情。
| 归档时间: |
|
| 查看次数: |
27672 次 |
| 最近记录: |