提取詞和位置我有character
分隔符(DELIMITERS
)Set
,如.
,
等使用此我要拆分文本,並與他們的文本位置得到的話。
String.split()
工作正常,如果你只想要單詞。與StringTokenizer
相同。寫了一些簡單的方法來處理這個,但也許有更好的方法來實現這個結果?文本標記生成器 - 從文本
public List<String> extractWords(String text){
List<String> words = new ArrayList<>();
List<WordPos> positions = new ArrayList<>();
int wordStart = -1;
for(int i=0; i < text.length(); i++){
if(DELIMITERS.contains(text.charAt(i))){
if(wordStart >=0){ //word just ended
String word = text.substring(wordStart, i);
positions.add(new WordPos(wordStart, i));
words.add(word);
}
wordStart = -1;
}else{ //not delimiter == valid word
if(wordStart < 0){ //word just started
wordStart = i;
}
}
}
return words;
}
// inner static class for words positions
public static class WordPos{
int start;
int end;
public WordPos(int start, int end){
this.start = start;
this.end = end;
}
}
我認爲你應該在http://codereview.stackexchange.com/ – Matt 2015-02-09 10:14:51