0

私はこのコードを使用して、ファイルから1行のテキストを読み取ります。

BufferedReader br = new BufferedReader(new FileReader("myFile.txt"));
String line = br.readLine();

行にタブが含まれている場合:(\ t)、この文字は正しく読み取られません。空のスペースとして表示されます。現在読み取られているテキスト行にタブ文字が含まれているかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

1

文字列を印刷して空のスペースであると判断した場合は、使用している端末によるタブ文字の解釈が表示されます。ほとんどのターミナルドライバは、タブ文字(ASCII 9)を、古いタイプライターの動作をシミュレートする「8の倍数である列にジャンプする」ことを意味すると見なします。

charAt(...)文字列内の各文字を調べて、代わりに値9を探すことを検討してください。

于 2012-09-15T23:40:48.033 に答える
1

テキスト ファイルには \t 文字が含まれていますが、読み取り文字列に文字を出力すると、空に見えます。つまり、\t が読み取られていません。

私の最初の反応は、これは出力を表示しているもののせいだということです。出力をファイルにリダイレクトし、タブ文字があればそれが表示されることがわかっているツールで表示してみてください。(例えば、odUNIX/Linux を使用している場合のユーティリティ。) また、入力ファイルも確認します。

現在読まれているテキスト行にタブ文字が含まれているかどうかを確認するにはどうすればよいですか?

    for (char ch : line.toCharArray()) {
        if (ch == '\t') {
            System.err.println("BINGO!!");
        }
    }
于 2012-09-15T23:58:42.667 に答える
0

Hovercraft Full Of Eelsが言ったように、文字ごとではなく、行全体を読んでいます。

とにかく、次のような方法でタブ空白文字かどうかを確認できます(String.charAt(pos) == '\t') { do stuff with it }

于 2012-09-15T23:41:27.843 に答える