私の目標は、文字列を圧縮するプログラムを作成することです。たとえば、次のようになります。
入力: helloooppppp!
出力:he2l3o6p!
これまでのコードは次のとおりですが、エラーがあります。
入力がある場合: hellooo
私のコード出力: hel2l3o
代わりに: he213o
2 が間違った場所に印刷されていますが、これを修正する方法がわかりません。
また、次の入力を使用: hello
私のコード出力: 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);
}
}