对于具有字符和字符出现次数的给定字符串,请解码为完整字符串。在编码期间,如果角色只出现一次,则该角色旁边不会有任何数字。
输入:"a5br3"
输出:"aaaaabrrr"
我得到的输出为:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
我的逻辑是否正确?我的代码出了什么问题?
public String func (String str){
if(str==null){
return null;
}
String result="";
for(int i=0;i<str.length();i++){
char c= str.charAt(i);
if(Character.isLetter(c)){
result+=str.charAt(i);
}
else if(Character.isDigit(c)){
for(int j=0;j<c;j++){
result+=str.charAt(i-1);
}
}
}
return result;
}
答案 0 :(得分:4)
您将数字的数值与其字符代码混淆。此外,由于字符已经附加到字符串一次,我们需要在循环期间添加少一个副本。您可以使用以下代码:
for(int j=1;j<(c - '0');j++) ...