8

はい、改行に関する他の投稿をいくつか読みましたが、役に立ちません。

私の Java プログラムは、.PHP ファイルを読み取り、ソース コードを行ごとの形式に分割することになっています。問題は、改行を別の改行と本当に区別できないように見えることです。

/n を使用しようとしましたが機能しませんでした.... /r/n を使用しようとしましたが機能しませんでした.....

ここに例があります

step_B = step_A.replaceAll("\n", "XXX");

改行を XXX という単語に置き換えようとしましたが、うまくいきませんでした。

これは、分割したいphpのサンプルです。区切り文字としてですが、もう少し洗練する必要があります。

$ALL_AUTH = mysql_fetch_row($author_lookup);
    //preparing to display the output in the table
    echo "<tr>";

このようなものを出力したかった

INFO:  $ALL_AUTH = mysql_fetch_row($author_lookup)

INFO:  //preparing to display the output in the table 

INFO:  echo "<tr>"

しかし、代わりに私はこれを得る

INFO:  $ALL_AUTH = mysql_fetch_row($author_lookup)

INFO:  //preparing to display the output in the table  echo "<tr>"

アプリは、コメントが「テーブル」という単語で終わった後に改行があることを検出できないようです。これを行う方法はありますか?できれば単語テーブルなどをハードコーディングしないでください。

ああ、間違いを見つけました。初期段階でコードブロックの正規表現を介して変換を使用したため、改行が台無しになりました....コードブロックが1行の大量のテキストになりました! したがって、改行はありません。お時間をいただきありがとうございます。

4

3 に答える 3

19

すでに文字列にデータがある場合:

String[] lines = string.split("\r\n|\n|\r");
for (String line : lines) {
    System.out.println(line);
}

または、ファイルから直接行を読み取ります。

BufferedReader br = new BufferedReader(new FileReader("myfilename"));
String line = null;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}

Java 7+には、ファイルシステムから直接行を読み取る便利なメソッドがあります。

Path path = FileSystems.getDefault().getPath("myfilename");
List<String> lines = Files.readAllLines(path, Charset.defaultCharset());
for (String line : lines) {
    System.out.println(line);
}

Javaは自動文字セット検出を行わないため、テキストファイルを読み取るときに文字セットを正しく設定する必要があります。そうしないと、文字が正しく読み取られない可能性があります。整頓することを忘れないでください:ファイルハンドル.close()。

于 2013-01-15T21:27:48.813 に答える
0

私には解決策があると信じています。/nが何もしないという事実は正しいです。ただし、javaは。を使用して行を区切ります\n。スラッシュではなくバックスラッシュに注意してください。

\n代わりに使用してみてください/n

編集

実際、私はあなたのコードを読み直しました。それによると、あなたはそれをきちんとやった。実際のコードがそのようなものであることを確認してください。そうでなければ、この答えはあなたを助けませんが、それは他の人を助けるかもしれません。

于 2013-01-15T21:27:29.660 に答える
0

PHP の読み取りに使用する Java クラスに応じて、BufferedReader.readLineなどを使用します。心配し\nたり\r\n狂ったりすることなく、テキスト行を取得します。

于 2013-01-15T21:28:31.093 に答える