【发布时间】:2013-11-09 02:07:54
【问题描述】:
我的目标是写一个压缩字符串的程序,例如:
输入:hellooopppppp!
输出:he2l3o6p!
这是我到目前为止的代码,但有错误。
当我有输入时:你好
我的代码输出: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);
}
}
【问题讨论】:
-
你将如何压缩 1223334444?顺便说一句
ll与2l大小相同 -
1) 请参阅上面 Peter Lawrey 的评论和下面的回答 2) 使用 StringBuilder 构建字符串而不是 concat() 3) 您可以附加一个字符而不将其转换为 String()
标签: java string compression