2012-04-10 10 views
0

これから私が解決したことについて別の質問をしましたが、ここでは私がやりたいことについて簡単に説明します。テキストファイルからテキストをトークンとして抽出したいと思っています。トークンは空白をスキップしますか?

は私を信じて、

それは良いレストランだ:私は文を含むテキストファイルを持っています!

「トークン」としてこのトークンの内容を抽出したいとします。たとえば、1つのトークンは「それ」、次のトークンは「」、それ以降は「a」、 「良い」、「レストラン」、次に「」、「\ n」、「信じる」、「」、「私」、「!だから私はそれを置く一つの方法は、トークンは言葉でも単語でもないということです。ここで

は、これまでの私のコードです:

/** 
* Returns the next token, or throws a NoSuchElementException if none remain. 
*/ 
public Token next() { 
    if (c == -1) { 
     throw new NoSuchElementException(); 
    } 

    Writer sw=new CharArrayWriter(); 
    boolean trf=false; 
    try { 
     while (c != -1 && isWordCharacter(c)) { 
       sw.write(c); 
       c = r.read(); 
       trf=true; 
     } 
     while (c != -1 && !isWordCharacter(c)) { 
      if (Character.isWhitespace(c)&&!(trf==true)){ 
       sw.write(c); 
       c=r.read(); 
       } 
      else if (Character.isWhitespace(c)&&(trf==true)){ 
       c=r.read(); 
      } 
      else{ 
       sw.write(c); 
       c = r.read(); 

      } 
     } 
    } catch (IOException e) { 
     c = -1; 
     return new Token(trf, sw.toString()); 
    } 
    return new Token (trf, sw.toString()); 
} 

問題は、私は "良い" など、 " "" """、その代わりに "これだ" 取得の、aは空白をスキップすることで、I空白をトークンとして取り込まずに、 "It's"、 "a"、 "good"を取得します。誰に何が間違っているのヒントを持っていますか?ありがとうございました!

答えて

0

ここにはreferenceへのリンクがあります。
StringTokenizer(String str, String delim, boolean returnDelims)

最後の議論の示唆したように、区切り文字も返されます。

StringTokenizer str = new StringTokenizer(sentence," \n\r",true);

while(str.hasMoreTokens()) 
{ 
    System.out.println(str.nextToken()); 
} 

これが何をしたいあなたを与える必要があります。それが役に立てば幸い。

+0

区切り文字とともにトークンを印刷しますか? – noMAD

+0

はい、デリミタも印刷します。試してみてください。 – nikhil

0

ちょうど行います

StringTokenizer str = new StringTokenizer(sentence); 
ArrayList<String> arr = new ArrayList<String>(); 
while(str.hasMoreTokens()) 
{ 
    //arr.add(" "); Be careful to add this only after the first word 
    arr.add(str.nextToken()); 
} 

は、すべてのトークンの後" "を含むあなたのロジックを追加します。その非常にシンプルです;)

+0

トークンを含めるために別のロジックを追加する必要はありません。文字列トークンは、そのためのコンストラクタを提供します。 – nikhil

関連する問題