如何转义 Java 中的转义字符

how to escape escape characters in Java

我有一个大文件,其中包含我需要查找的 \'。我尝试了以下变体,但没有用:

do{           
       line =  TextFileIO.readLine(bufferedReader);           
       if(line != null){
           TextFileIO.writeLine(bufferedWriter,line); 

           for (int i = 0; i < line.length() - 1; i++){

              if(line.substring(i,i+1).equals("\\'"))System.out.println("we found it " + line);

           }
        }

    }while (line != null);

无需转义单引号!

单引号不需要转义,因为所有 Java 字符串都由双引号分隔。单引号分隔 字符 文字。因此,在字符文字中,您需要转义单引号,例如'\''.

所以你只需要"\'",只转义反斜杠。

substring(i,i+1) 无法生成两个字符的字符串。如果你想获得 2 个字符的字符串,你需要调用 (i,i+2).

此外,您的 for 循环可以替换为对 contains 的调用。

if(line.contains("\'"))System.out.println("we found it " + line);

要表示后跟撇号的单个反斜杠,您可以使用

"\'"

但是substring(i,i+1)不可能等于一个双字符的字符串。

也许你的意思是

if (line.substring(i, i+2).equals("\'")) ...

line.substring(i,i+1)只包含一个字符,for loop可以替换为line.indexOf("\'") >= 0

if (line.indexOf() >= 0) {
    System.out.println("we found it " + line);
}

\ 是 Java 中的转义 \,所以我认为你的匹配字符串应该是 "\".

P.s。我不太确定你在这里想要实现什么,但似乎有比你在这里拥有的更优雅、更多 "java-like" 的方法...