/**
*
*/
package dianer;
import java.util.Scanner;
/**
* * @author LilyLee
* @date 2017年3月19日
* @Version
*题目:
*给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。
*比如字符串AAAABCCDAA会被编码成4A1B2C1D2A
*
*输入: 输入一行字符串,只包括大写英文字母,长度不超过10000
*输出:编码后的字符串
*/
/*
* 这个代码比较简单,主要是用了StringBuilder实现。
* String 和 StringBuilder 的主要区别是:
* String 是不可变对象,每次对String类型进行修改都等同于生成了一个新的String 对象。这样会对系统的性能产生影响。
* StringBuilder是线程不安全的,用于字符串经常改变的情况。它是一种类似于String的字符串缓冲区。比线程安全的StringBuffer速度更快。
* 【http://blog.csdn.net/rmn190/article/details/1492013】
* */
public class intTOString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
char[] array = s.toCharArray();
TOString(array);
}
public static void TOString(char [] array){
StringBuilder sb=new StringBuilder();
int count=1;
if (array.length==0){System.out.println("null");return;}
if(array.length==1){System.out.println(""+count+array[0]);}
for(int i=1;i<array.length;i++){
if(array[i]==array[i-1]){ count++;}
else{
sb.append(count).append(array[i-1]);
count=1;
}
if(i==array.length-1){
sb.append(count).append(array[i]);
}
}
System.out.println(sb.toString());
}
}
字符串编码 の StringBuilder实现
最新推荐文章于 2022-08-20 14:56:41 发布