在java String中打印转义序列

时间:2012-10-27 13:51:05

标签: java character-encoding escaping unicode-escapes

  

可能重复:
  How do I print escape characters in Java

我正在编写一个程序,它从文件中读取一个String并从该文件生成标记。

EG。如果文件是'1 \ t。\ n $$$'

然后我想要的java字符串完全相同。所以String str应该看起来像'1 \ t。\ n $$$'

问题是,一旦遇到可以表示\ t或\ n的'\'(反斜杠),那么下一个字符(t或n)就会丢失。

我正在使用bufferedreader类并使用read函数逐个字符地读取文件。 这是一段代码。

    Charset encoding = Charset.defaultCharset();
    InputStream in = new FileInputStream(new File (filepath));
    Reader reader = new InputStreamReader(in, encoding);
    // buffer for efficiency
    buffer = new BufferedReader(reader);
    String temp = "";
    while ((r = buffer.read()) != -1) {
        ch = (char) r;
        if (ch != '\\') {
        temp += ch;
        } else if (ch == '\\'){
         ch = (char) buffer.read();
         if (ch == 'n') {
            temp += "\\n";
         } else {
            temp += "\\t";
         }
        }
    } 

我也尝试过使用UTF-8字符集进行编码

 (Charset encoding = Charset.forName("UTF-8");)

但这没有帮助。

提前致谢。

0 个答案:

没有答案