我的目标是编写一个压缩字符串的程序,例如:
输入:你好oopppppp!
输出:he2l3o6p!
这是我到目前为止的代码,但有错误。
当我有输入时:hellooo
我的代码输出:hel2l3o
代替:he213o
2被打印在错误的位置,但我不知道如何解决这个问题。
此外,输入:你好
我的代码输出:hel2l
而不是:he2lo
在这种情况下,它会一起跳过最后一个字母,并且 2 也在错误的位置,这是我的第一个示例中的错误。
任何帮助深表感谢。非常感谢!
public class compressionTime
{
public static void main(String [] args)
{
System.out.println ("Enter a string");
//read in user input
String userString = IO.readString();
//store length of string
int length = userString.length();
System.out.println(length);
int count;
String result = "";
for (int i=1; i<=length; i++)
{
char a = userString.charAt(i-1);
count = 1;
if (i-2 >= 0)
{
while (i<=length && userString.charAt(i-1) == userString.charAt(i-2))
{
count++;
i++;
}
System.out.print(count);
}
if (count==1)
result = result.concat(Character.toString(a));
else
result = result.concat(Integer.toString(count).concat(Character.toString(a)));
}
IO.outputStringAnswer(result);
}
}