我有一个需要找到的大文件,其中包含\'。我尝试了以下方法的变种,但无法正常工作:
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);
答案 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”的方法...