2012-01-10 28 views
0

私はコンソールで文字列を入力するクライアント/サーバプログラミングに関するプログラムを作っています。プログラムは.txtファイルのすべての行を検索しますその文字列が存在する行全体を出力します。 StringTokenizerが私のプログラムで動作しないようです - Java

この

はStringTokenizerは、使用されるコードの一部です:

String line = ""; 
boolean wordFound = false; 

while((line = bufRead.readLine()) != null) { 
    StringTokenizer str = new StringTokenizer(line, ", .();:-?!'"); 

    while(str.hasMoreTokens()) { 
     String next = str.nextToken(); 
     if(next.equalsIgnoreCase(targetWord)) { 
      wordFound = true; 
      output = line; 
      break; 
     } 
    } 

    if(wordFound) break; 
    else output = "Quote not found."; 
}  

問題は、私は、例えば、文字列を検索する場合"あなた"または "それは私の誕生日です"(アポストロフィやスペースで)、ブール値wordFoundには偽の値が与えられます。私はデリミタ ""と "'"を削除しようとしましたが、それでも動作しません。

私は一度コードを修正しましたが、ブール値のwordFoundに真の値を取得することがありましたが、今では大文字小文字を無視しないようです。例えば私は「あなたがいる」と入力し、wordFoundは真となります。しかし、私がそれを「You're」または「yOu 'Re」に変更すると、wordFoundはまだfalseです。

誰かがこの問題の解決策を見つけるのを助けることができますか?ありがとう。

答えて

1

あなたの文字列トークナイザする必要があります:あなたはyoure"にあなたのテキストyou're"をトークン化されStringTokenizer(line, ", .();:-?!'");すなわち'の代わり"を、持っているあなたのコードで

StringTokenizer str = new StringTokenizer(line, ", .();:-?!\""); 

関連する問題