シンプルな Java プログラムでjava.util.Scannerを使用して、以下のテキスト ファイルを読み込もうとしています。
0001;GUAJARA-MIRIM;RO
0002;ALTO ALEGRE DOS PARECIS;RO
0003;PORTO VELHO;RO
以下のコードを使用してテキスト ファイルを読み取ります。
scanner = new Scanner(filerader).useDelimiter("\\;|\\n");
while (scanner.hasNext()) {
int id= scanner.nextInt();
String name = scanner.next();
String code = scanner.next();
System.out.printf(".%s.%s.%d.\n", name, code, id);
}
結果は次のとおりです。
.GUAJARA-MIRIM.RO.1
.
.ALTO ALEGRE DOS PARECIS.RO.2
.
.PORTO VELHO.RO.3
.
しかし、各行の 3 番目のトークンの結果には、末尾に不都合な '\r' 文字があります (ANSI コード 13)。理由はわかりません (フォーマット文字列に「.」文字を使用して、「\r」がどこにあるかを明確にしました)。
そう、
- 3 番目のトークンの末尾に「\r」があるのはなぜですか?
- それをバイパスする方法。
のような回避策を使用するのは非常に簡単code.substring(0, 2)
ですが、代わりに「\r」文字がある理由を理解したいと思います。