请帮助我了解以下用法:\ 0

时间:2019-03-26 05:01:33

标签: java

我正在上课作业,一位朋友帮助我编写了一些代码,尽管我已经查找了\ 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的工作方式以及它的用途。

1 个答案:

答案 0 :(得分:1)

他们使用NULL字符作为变量的起始值,因此在进行迭代时,prev将永远与传递的字符串的第一个字符不匹配(至少,不 在您提供的示例中)

它只是用于放置最后看到的字符的未初始化位置的占位符。

该功能是先将一个字母的倍数替换为一个数字,然后再替换一个字符。