读取文件并添加额外的“\”

时间:2013-07-16 11:18:46

标签: java string file-io split special-characters

我正在从文本文件中读取一些数据。有些数据可能在fornt中有一个“\”,我想保留。我遇到的问题是,当我将这些数据存储在字符串中时var java在前面添加了另一个“\”,我猜是因为“\”是String中的特殊字符。是否可以在没有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

无论如何要改变它?

由于

2 个答案:

答案 0 :(得分:3)

  

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

这是一个转义序列。

我不知道为什么你需要在String内部改变它?你可以使用这个字符串。 即在

中使用它
System.out.println("\\+441506441111:\\+441506442222"); 

它将以单张打印。

您只需要在任何地方使用此字符串

答案 1 :(得分:0)

  1. 从文件中读取时,java需要转义'\'特殊 字符。
  2. 创建字符串以表示相同的文本时:

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

    • 你会读一个'\'
    • 在调试器或其他方式查看代码,您会看到“\”
    • 但是如果你打印文本,将只有一个'\'