处理特殊字符:'\n''\\n''\t'和'\\t'

  • 本文关键字:特殊字符 处理 java
  • 更新时间 :
  • 英文 :


我有一个名为myfile的文本文件,其中有一行文本,包含一些特殊字符n(换行字符(或一些转义字符\n

myfile内容:

thiss isn a string\n bla bla

我想阅读这个文件,但保留这些特殊字符的语义。

我试着在没有任何特殊工作的情况下读取文件,但所有这些特殊字符都被解释为原始字符串。

public class Main {
public static void main(String[] args) {
String path = Main.class.getResource("/myfile").getPath();
try (BufferedReader in = new BufferedReader( new FileReader(path))) {
String line = in.readLine();
System.out.println(line); // printed as a raw string, `n` not interpreted as a new line char
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

我也尝试过使用String.replace()方法,但它只适用于n,而不适用于\n

line.replace("\n", "n");

试试这个。

public static void main(String[] args) throws IOException {
String in = "thiss is\n a st\tring\\n bla bla";
String out = in
.replaceAll("(?<!\\)\\n", "n")
.replaceAll("(?<!\\)\\t", "t")
.replaceAll("\\\\", "\\");
System.out.println("in  : " + in);
System.out.println("out : " + out);
}

输出:

in  : thiss isn a sttring\n bla bla
out : thiss is
a st   ringn bla bla

您实际上可以做到:

line = line.replace("\\n", "n");
line = line.replace("\n", "n");

按照这个顺序。

最新更新