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

private void button1ActionPerformed(ActionEvent evt) {
String data1 = area1.getText();
String data2 = text1.getText();
    if(data1.length()>0){
      area1.setText("");
      String[] strAry = data1.split("\r\n");
for(int i = 0; i<strAry.length; i++){
if (strAry[i].indexOf(data2)!=-1)area1.append(strAry[i] + "\r\n");
}
}else{
area1.setText("");
}
}

上記は、button1を押すとtext1に書かれた文字列をテキストファイルの
中から検索し、area1に検索結果を表示させるものです。
text1に文字列が一つだけ書かれている場合は、これで良いのですが
スペースで区切った文字列を全て含む、複数検索(AND検索)の場合は
どうなるのでしょうか?(例:晴れ 天気)
苦し紛れにString[] strAry2 = data2.split(" ");をつくり
forで回そうとしましたが、だめでした・・(or検索ではないですもんね)。
どうか良いお知恵をお貸しください。

A 回答 (1件)

こんにちは。



例の状況としては以下でしょうか?
(1)対象ファイルは1つ
(2)その中で複数キーワードに一致する行を抽出したい

上の状況で合っているとすれば、
1. キーワードを区切り文字(空白など)で分解する
2. 1の1つのキーワードでファイルを検索し、
検索された行番号を保持
(行番号はfor文なんかの繰り返し回数なんかでいいかと。)
3. 2で検索した以外のキーワードで、保持した行番号に
対応する文字列をさらに検索する。
4. 3の行番号を保持する。

3.4を繰り返す。

こんな感じでどうでしょうか。

参考URL:http://www.atmarkit.co.jp/fcoding/articles/algor …
    • good
    • 0
この回答へのお礼

ありがとうございます、状況はまさにその通りです。
大変参考になりました。がんばってみます・・

お礼日時:2009/12/08 17:12

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