public String zipString(String iniString) { char[] chara = iniString.toCharArray(); String first = iniString.substring(0,1); String result =first; boolean flag =false; boolean vaild =true; int count=1; for (int i=1 ;i<iniString.length();i++) { String tmp = String.valueOf(chara[i]); if(tmp.equals(first)){ count++; flag=true; vaild=false; if(i==iniString.length()-1){ result +=count; } }else { if(flag){ result += count; flag =false; count=1; }else{ result +=1; } first=tmp; result += tmp; } } if(vaild){ result = iniString; } return result; }