我想将 ...----....--.-.-.
之类的字符串编码为 .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/