好的,我已经问过关于这个问题的另一个问题,我已经解决了,但下面是我想要做的简要解释:我希望能够从文本文件中提取文本作为标记 - 例如,说我有一个包含句子的文本文件:令牌跳过空格?
这是一个很好的餐厅,
相信我!
我想提取这个内容作为“标记” - 例如,一个标记将是“它是”,下一个标记将是“”,之后的那个将是“一个”,然后“”,然后是“好”,然后是“餐馆”,然后是“,”和“\ 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