我正在上课作业,一位朋友帮助我编写了一些代码,尽管我已经查找了\ 0字符并阅读了说明,但我仍要求某人确切地解释它的作用这种方法。非常感谢。同样,我想知道我的代码中该字符的确切功能或用法:\ 0。
public String runLengthEncoding(String str){
String encoded = "";
char prev = '\0';
char curr;
int counter = 1;
for (int i = 0; i < str.length(); i++) {
curr = str.charAt(i);
if(prev == curr) {
//System.out.println("prev == curr");
counter = counter + 1;
}
else {
if(i != 0) {
//System.out.println("encoded += counter + prev");
encoded += Integer.toString(counter) + prev;
//System.out.println(encoded);
counter = 1;
}
}
//System.out.println(Integer.toString(i) + str.length());
if(i == str.length() - 1) {
encoded += Integer.toString(counter) + curr;
//System.out.println(encoded);
counter = 1;
}
prev = curr;
//System.out.println(i + ", " + prev + ", " + curr);
}
return encoded;
此方法的目的是遍历String,在String的顺序索引处计算相同字符的数量,并生成原始String的代表性String。例如,如果原始字符串为“ RRRRSTTT”,则该方法应返回字符串“ 4R1S3T”。效果很好,我刚刚对它进行了编码,因为我还很新,我想知道\ 0的工作方式以及它的用途。
答案 0 :(得分:1)
他们使用NULL字符作为变量的起始值,因此在进行迭代时,prev
将永远与传递的字符串的第一个字符不匹配(至少,不
在您提供的示例中)
它只是用于放置最后看到的字符的未初始化位置的占位符。
该功能是先将一个字母的倍数替换为一个数字,然后再替换一个字符。