Java (RLE)如何获得前面的数字而不是字母

Java (RLE)如何获得前面的数字而不是字母,java,Java,我在显示输出时遇到问题。我想打印出来,这样它会先显示数字而不是字母。例如,当我输入“wwhjj”时,它会显示为“W3HJ3”,我希望它显示为“3WH3J” import java.util.Scanner; 公共类压缩字符串{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); System.out.print(“输入字符串:”); 字符串str=sc.nextLine(); 系统输出打印项次(“输入:+str”); 字符串编码=”; char c

我在显示输出时遇到问题。我想打印出来,这样它会先显示数字而不是字母。例如,当我输入“wwhjj”时,它会显示为“W3HJ3”,我希望它显示为“3WH3J”

import java.util.Scanner;
公共类压缩字符串{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入字符串:”);
字符串str=sc.nextLine();
系统输出打印项次(“输入:+str”);
字符串编码=”;
char ch=0;
整数计数=1;
对于(int i=0;i
这似乎很明显:

        encode = encode + ch;
        if(count != 1)
        {
           encode = encode + count;
        }
追加字符,然后追加计数。只需颠倒顺序:

        if(count != 1)
        {
           encode = encode + count;
        }
        encode = encode + ch;

解决这个问题的最佳方法是使用IDE的调试器来查看程序运行时的状态发生了什么变化。我还将使用StringBuilder而不是字符串连接。StringBuilder效率更高。
        if(count != 1)
        {
           encode = encode + count;
        }
        encode = encode + ch;