プロが教える店舗&オフィスのセキュリティ対策術

テキストファイルの任意の単語を含む一行を削除させるプログラムを作成したいです。
例えば、

test.txt

今日は久しぶりに晴れました。
とてもいい天気だったので、ショッピングに。
その後、アップルストアにて新発売のMacを触ってきました。


上記のようなテキストファイル(test.txt)に対して、
データベース等に格納されている単語のリストと参照させ、
リストにある単語を含んでいる行を削除させたテキストファイルを生成させたいです。

例えば、リストに"天気"の単語があれば、
以下のようなテキストファイルを生成させたいです。

result.txt

今日は久しぶりに晴れました。
その後、アップルストアにて新発売のMacを触ってきました。


このようにするには、どのようにプログラムを作成すればよいでしょうか?
よろしくお願いします。

A 回答 (3件)

データベースから拾ってくる方法は考えてください。


"天気”という文字列がない行のみresult.txtに吐き出しています。

import java.io.*;
import java.util.*;
class Editor100 {
public static void main(String args[]){

try{
BufferedReader reader = new BufferedReader(new FileReader("text.txt"));
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("result.txt")));
String line;

while((line = reader.readLine())!= null){
if((line.indexOf("天気"))==-1){
writer.println(line);
}
}
reader.close();
writer.close();
}
catch(IOException e){
System.out.println(e);
}
}
}
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

無事問題を解決できました。

お返事が遅くなって申し訳ありませんでした。

お礼日時:2006/06/13 09:15

#2さんのindexOfをsubstringにしてみました。



import java.io.*;

public class Sample {
public static void main(String[] args){
try{
BufferedReader br=
new BufferedReader(new FileReader("C:\\test.txt"));
PrintWriter pw=
new PrintWriter(new BufferedWriter(new FileWriter("C:\\result.txt")));

String str;
int flag=0;

while ((str = br.readLine())!= null) {

if(str.length()==0){ break;}
flag=0;

for(int i=0;i<str.length()-2;i++){
if(str.substring(i,i+2).equals("天気")){
flag=1;
}
}
if(flag==0){
pw.println(str);

}
}
pw.close();
br.close();
}catch(IOException e){
System.out.println("IOエラー");
}
}
}
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

とても参考になりました。

お礼日時:2006/06/13 23:36

java限定ですか?

この回答への補足

はい。
できればjavaで作成したいと考えています。

補足日時:2006/06/13 00:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!