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