好的,我已經問過關於這個問題的另一個問題,我已經解決了,但下面是我想要做的簡要解釋:我希望能夠從文本文件中提取文本作爲標記 - 例如,說我有一個包含句子的文本文件:令牌跳過空格?
這是一個很好的餐廳,
相信我!
我想提取這個內容作爲「標記」 - 例如,一個標記將是「它是」,下一個標記將是「」,之後的那個將是「一個」,然後「」,然後是「好」,然後是「餐館」,然後是「,」和「\ 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());
}
的問題是,我跳過空格,這樣反而讓「它」,「」,「一」,「」,「好」等,我得到「它是」,「一個」,「好」,而不用將空白作爲標記。有沒有人有什麼問題的提示?謝謝!
它會打印令牌和分隔符嗎? – noMAD 2012-04-10 03:11:42
是的,它也會打印分隔符,試試看。 – nikhil 2012-04-10 03:14:25