0

重複の可能性:
Javaでエスケープ文字を出力するにはどうすればよいですか

ファイルから文字列を読み取り、そのファイルからトークンを生成するプログラムを作成しています。

例えば。ファイルが '1\t .\n$$$' の場合

次に、必要な Java String はまったく同じです。したがって、文字列 str は '1\t .\n$$$' のようになります。

問題は、\t または \n を表す '\' (バックスラッシュ) に遭遇するとすぐに、次の文字 (t または n) が失われることです。

bufferedreader クラスを使用し、関数 read を使用してファイルを 1 文字ずつ読み取っています。これがコードの一部です。

    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");)

しかし、それは役に立ちません。

前もって感謝します。

4

0 に答える 0