我想编码一个像...----....--.-.-.
到.3-4.4-2.1-1.1-1.1
这样的字符串-显示,首先有三个点(.3),然后有四个连字符(-4),依此类推。
我差点就做到了,但是任何地方都有错误...
static String pointsAndLines(String s){
StringBuffer encodedString = new StringBuffer();
int counter = 1;
char currentChar = s.charAt(0);
for(int i=1; i<s.length(); i++){
if(s.charAt(i) != currentChar){
encodedString.append(String.valueOf(currentChar) + counter);
currentChar = s.charAt(i);
counter = 1;
} else counter++;
}
return encodedString.toString();
}
但是输出是这样的:
.3-4.4-2.1-1.1-1
最后一个
.1
丢失了-但是为什么呢? 最佳答案
一旦您敲了字符串的末尾,循环就终止了,并且最后一组没有追加到缓冲区中。您可以明确地附加它:
for(int i=1; i<s.length(); i++){
if(s.charAt(i) != currentChar){
encodedString.append(String.valueOf(currentChar) + counter);
currentChar = s.charAt(i);
counter = 1;
} else counter++;
}
encodedString.append(String.valueOf(currentChar) + counter); // Here
关于java - 为什么最后一个字符不出现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53935573/