2012-04-20 18 views

答えて

4

ファイルを読み込んで、削除する単語をスキップして、ファイルをもう一度書き戻す必要があります。

このため、読むたびに無視する単語をスキップするほうがよいでしょう。これはユースケースによって異なります。 (google guavaを使用して)

が実際に(あなたはとにかくそれをやりたい方法ではないかもしれない)、ラインごとに単語を削除するには、この操作を行うことができます:

// the words you want to remove from the file: 
    // 
    Set<String> wordsToRemove = ImmutableSet.of("a", "for"); 

    // this code will run in a loop reading one line after another from the file 
    // 
    String line = "Some words read from a file for example"; 
    StringBuffer outputLine = new StringBuffer(); 
    for (String word : Splitter.on(Pattern.compile("\\s+")).trimResults().omitEmptyStrings().split(line)) { 
     if (!wordsToRemove.contains(word)) { 
      if (outputLine.length() > 0) { 
       outputLine.append(' '); 
      } 
      outputLine.append(word); 
     } 
    } 

    // here I'm just printing, but this line could now be written to the output file. 
    // 
    System.out.println(outputLine.toString()); 

これを実行しますコードは次のように出力されます。

Some words read from file example 

「a」と「for」は省略されています。

これは単純なコードになりますが、ファイル内の空白の書式が変更されることに注意してください。スペースやタブなどを2倍にした行がある場合は、このコードではすべてが1つのスペースに変更されます。これはあなたの要求に応じて、あなたがそれを行う方法の単なる例です、おそらくより良い方法があります。

+0

もう少し詳しいことを教えてください。 @daveb –

+0

@SuhailJavidあなたが詳細に説明する最初のものでなければなりません。あなたはこれまで何を試していますか、あなたのコードは何ですか?あなたは少なくともファイルを読むコードを持っていますか? –

+0

@daveb助けてくれてありがとう。私は文字列から単語を省略すると、新しいファイルに古い形式で文字列を書き戻す方法はありますか?私は初心者ですように助けてください! –

関連する問題