これから私が解決したことについて別の質問をしましたが、ここでは私がやりたいことについて簡単に説明します。テキストファイルからテキストをトークンとして抽出したいと思っています。トークンは空白をスキップしますか?
は私を信じて、
それは良いレストランだ:私は文を含むテキストファイルを持っています!
「トークン」としてこのトークンの内容を抽出したいとします。たとえば、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"を取得します。誰に何が間違っているのヒントを持っていますか?ありがとうございました!
区切り文字とともにトークンを印刷しますか? – noMAD
はい、デリミタも印刷します。試してみてください。 – nikhil