如何在Java中转义转义字符

时间:2018-07-07 16:50:41

标签: java string equals

我有一个需要找到的大文件,其中包含\'。我尝试了以下方法的变种,但无法正常工作:

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);

4 个答案:

答案 0 :(得分:2)

无需转义单引号!

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

因此,您所需要做的就是"\\'",仅转义反斜杠。

substring(i,i+1)无法产生两个字符串。如果您尝试获取2个字符的字符串,则需要使用(i,i+2)进行调用。

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

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

答案 1 :(得分:1)

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

"\\'"

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

也许你是说

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

\\是Java中的转义\,因此我认为您的匹配字符串应为"\\"

P.s。我不确定您要在这里实现什么,但是比您在这里拥有的方法似乎更优雅,更“类似于Java”的方法...