0

我正在从文本文件中读取一些数据。某些数据可能在我想保留的 fornt 中有一个“\”。我遇到的问题是,当我将这些数据存储在字符串中时,var java 在前面添加了另一个“\”,我猜这是因为“\”是字符串中的特殊字符。是否可以在不使用 Java 添加额外的“\”的情况下存储数据

String line;
br = new BufferedReader(new FileReader(f));
while((line = br.readLine()) != null)
 {
 String[] arrLineElements = line.split(":");
 if(arrLineElements.length<=1)
  logWriter.write("Error in line:"+line+". Need at least 2 elements. Skipping line.");
 if(arrLineElements.length==2)
 {
  Dn dn = new Dn(arrLineElements[0], "", false, arrLineElements[1], "", false, "", false);
  dnList.add(dn);
 }
}

文本文件中的数据格式如下:

\+441506441111:\+441506442222

3333:4444

在我运行 java 代码后,数据存储在 dn 对象中

\\+441506441111:\\+441506442222

3333:4444

无论如何要改变它?

谢谢

4

2 回答 2

3

java在前面添加了另一个“\”,我猜是因为“\”是String中的特殊字符

这是一个转义序列是的。

我不明白你为什么需要在字符串本身内部更改它?你可以使用这个字符串。即使用它

System.out.println("\\+441506441111:\\+441506442222"); 

它将使用 single 打印。

你只需要在任何你想要的地方使用这个字符串

于 2013-07-16T11:22:09.193 回答
0
  1. 从文件读取时,java 需要转义 '\' 特殊字符。
  2. 在创建字符串以表示相同的文本时:

    • 从代码的角度来看,额外的“\”就在那里;
    • 从输出的角度来看,您只会看到一个 '\'
  3. 结论是:

    • 你会读到一个'\'
    • 在调试器或其他方式查看代码,你看到“\”
    • 但是如果你把文本打印回来,将只有一个'\'
于 2013-07-16T11:48:11.030 回答