0

そのため、最近、読む必要がある大きなテキスト ファイルを受け取りましたが、残念ながら、どこにでも次の行の文字があり、非常に読みにくいため、ひどくフォーマットされています。nextLineそのため、Java プログラムを使用してファイルを並べ替え、それぞれを削除する方法を考えてみました。

たとえば、次のテキストがあるとします。

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse rhoncus interdum      condimentum. Proin viverra   
justo vel imperdiet sagittis, purus sapien sagittis mi, et blandit purus ante non libero. Nulla ac   
augue ut odio eleifend interdum  
 ac id justo. Quisque rutrum euismod sem, vel euismod nunc convallis eu. Praesent odio velit,
 condimentum id scelerisque  
 iaculis, vulputate vitae lacus. Fusce adipiscing blandit libero eu venenatis.
 Vestibulum nec urna   
pulvinar arcu pretium   
pretium. Duis vitae augue dolor. Etiam consectetur feugiat
 diam sit amet gravida. 

私たちはそれが次のようになることを望みます:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse rhoncus interdum
condimentum. Proin viverra, justo vel imperdiet sagittis, purus sapien sagittis mi,       
blandit purus ante non libero. Nulla ac augue ut odio eleifend interdum ac id justo.
Quisque rutrum euismod sem, vel euismod nunc convallis eu. Praesent odio velit,
condimentum id scelerisque iaculis, vulputate vitae lacus. Fusce adipiscing blandit
libero eu venenatis. Vestibulum nec urna pulvinar arcu pretium pretium. Duis vitae
augue dolor 

Java を使用してテキスト ファイルを読み書きする経験はあまりありません。私の現在のアイデアは、次の行の値と等しいかどうかを確認する各 char 値を読み取り、そうでない場合はその char を別のテキスト ファイルに書き込むことです。しかし、これを実装する方法についてはよくわかりません。次の文字が次の行かどうかを確認する方法がわかりません。

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

1
File file = new File("yourFilePath.txt");  // create File object to read from
Scanner scanner = new Scanner(file);       // create scanner to read
Printwriter writer = new PrintWriter("someOutputFile.txt"); // create file to write to

while(scanner.hasNextLine()){  // while there is a next line
    String line = scanner.nextLine();  // line = that next line

    // do something with that line
    String newLine = "";

    // replace a character
    for (int i = 0; i < line.length(); i++){
        if (line.charAt(i) != '*') {  // or anything other character you chose
            newLine += line.charAt(i);
        }
    }

    // print to another file.
    writer.println(newLine);
}

同じファイルに書き戻すこともできますが、StringBuilder.

于 2013-11-10T01:57:21.403 に答える
1

スキャナーを使用してこれを行うことができます。

Scanner in = new Scanner(new File(filename));
String new_file_string = "";
while (in.hasNextLine())
    new_file_string += in.nextLine();
// write new_file_string to file.
于 2013-11-10T01:51:25.237 に答える
0

BufferedReader を使用し、このreadLine()メソッドを使用してファイルを一度に 1 行ずつ読み取ることをお勧めします。

  • 空の行を読み取ると、メソッドは (null 以外の) 空の文字列を返します。

  • ファイルの終わりに到達すると、メソッドは null を返します。

  • それ以外の場合、メソッドは行終端記号を削除した行 ... を返します。(したがって、行を出力するときは、行末記号を追加することを忘れないでください!)

自分でプログラムを書くにはこれで十分です。(そして、それは良いことです!)

于 2013-11-10T01:52:16.393 に答える