2
テキストファイルから(is、are、am、was etc)のような一般的な単語を削除する必要があります。どのようなJavaでそれを行うの効率的な方法は何ですか?テキストファイルから選択した単語を削除しますか?
テキストファイルから(is、are、am、was etc)のような一般的な単語を削除する必要があります。どのようなJavaでそれを行うの効率的な方法は何ですか?テキストファイルから選択した単語を削除しますか?
ファイルを読み込んで、削除する単語をスキップして、ファイルをもう一度書き戻す必要があります。
このため、読むたびに無視する単語をスキップするほうがよいでしょう。これはユースケースによって異なります。 (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つのスペースに変更されます。これはあなたの要求に応じて、あなたがそれを行う方法の単なる例です、おそらくより良い方法があります。
もう少し詳しいことを教えてください。 @daveb –
@SuhailJavidあなたが詳細に説明する最初のものでなければなりません。あなたはこれまで何を試していますか、あなたのコードは何ですか?あなたは少なくともファイルを読むコードを持っていますか? –
@daveb助けてくれてありがとう。私は文字列から単語を省略すると、新しいファイルに古い形式で文字列を書き戻す方法はありますか?私は初心者ですように助けてください! –