0

Java を使用して、区切り文字 CRLF(\r\n) を持つ各行で段落を読み取るにはどうすればよいですか。例えば

4\r\n この\r\n 8\r\n 応答\r\n

4 を抽出してバッファに格納し、8 を読み取ってこの段落に格納します。私を助けてください。

4

3 に答える 3

0

どのような出力が必要かはよくわかりませんが、BufferedReaderクラスを使用すると、テキスト ファイルを 1 行ずつ読み取ることができます。インターネット上で利用可能ないくつかの例があります。

readLineメソッドは次のことを行います。

1 行のテキストを読み取ります。行は、ライン フィード ('\n')、キャリッジ リターン ('\r')、またはキャリッジ リターンの直後のラインフィードのいずれかによって終了すると見なされます。

于 2013-05-10T07:54:30.710 に答える
0

BufferedReader.readLine()行を読み取るだけの場合、またはScanner数値を自動的に解析する場合に使用します。

于 2013-05-10T07:51:07.547 に答える
0

何をしなければならないのかよくわかりませんが、テキストから文字列を取得する必要がある場合は、私の解決策に従ってください。

最善の方法ではないかもしれませんが、区切り文字として使用StringTokenizerして指定することで機能します。\r\n

StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");

//iterate through tokens
while (st1.hasMoreTokens()) {
    String str = st1.nextToken();
    System.out.println(str);          
}

これは印刷されます

4

これ

8

応答

もちろん、これは、ファイルから読み取るのではなく、完全な文字列を取得したばかりで、そこからデータを抽出する必要がある場合に便利です。

ファイルから読んでいる場合BufferedReader.readLineは、正しい方法であるため、他の回答を確認する必要があります。

編集:

新しいコードは次のとおりです。

StringTokenizer st1 = new StringTokenizer("4\r\n This\r\n 8\r\n response\r\n", "\r\n");

//iterate through tokens
while (st1.hasMoreTokens()) {
    String str = st1.nextToken();
    try{
        //Integer.parseInt throws an exception in the input String doesn't represent a number so we catch the exception and we simply skip it. This will just output each number in your string.
        int i = Integer.parseInt(str.trim());
        System.out.println(i);
    } catch (NumberFormatException e){}            
}

これで、次のように出力されます。

4

8

于 2013-05-10T07:22:10.973 に答える