Java 将sysout更改为String

Java 将sysout更改为String,java,Java,请帮忙 我需要重新输入“字符串dst;”结果与控制台相同 例如输入txt=“aabbc”返回dst=“a2b2c1” 公共字符串压缩(字符串txt){ 字符串dst=“”; 字符; 整数计数; 对于(int i=0;i

请帮忙 我需要重新输入“字符串dst;”结果与控制台相同
例如输入
txt=“aabbc”返回dst=“a2b2c1”

公共字符串压缩(字符串txt){
字符串dst=“”;
字符;
整数计数;
对于(int i=0;i
使用
StringBuilder

public String compres(String txt) {

        StringBuilder dst = new StringBuilder();
        char character;
        int count;

        for (int i = 0; i < txt.length(); i++) {
            character = txt.charAt(i);
            count = 1;
            while (i < txt.length() - 1 && txt.charAt(i + 1) == character) {
                count++;
                i++;
            }
            System.out.print(character);
            System.out.print(count);
            dst.append(character).append(count);
        }

        return dst.toString();
}
公共字符串压缩(字符串txt){
StringBuilder dst=新的StringBuilder();
字符;
整数计数;
对于(int i=0;i
今天,我的同伴给了我最简单的解决方案,我只需要在循环中添加:

dst+=字符+“”+计数


与double sysout不同

您的代码的实际问题是什么?这个问题太不清楚,无法回答。请考虑使用字符到整数的形式。遇到新角色时,请将其以整数值1添加到地图中。当您看到一个现有字符时,递增与之关联的整数。然后迭代映射中的每个条目,并将字符/计数对添加到字符串中。
public String compres(String txt) {

        StringBuilder dst = new StringBuilder();
        char character;
        int count;

        for (int i = 0; i < txt.length(); i++) {
            character = txt.charAt(i);
            count = 1;
            while (i < txt.length() - 1 && txt.charAt(i + 1) == character) {
                count++;
                i++;
            }
            System.out.print(character);
            System.out.print(count);
            dst.append(character).append(count);
        }

        return dst.toString();
}