重複の可能性:
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");)
しかし、それは役に立ちません。
前もって感謝します。