所以,除了修剪功能,一切都很好。我不知道它是否有效。實際上我正在使用 ArrayList 制作倒排索引。從文件中獲取行,拆分成單詞(標記化)并刪除標點符號。當我談到刪除停用詞的部分時,它與文件中提供的停用詞不匹配。我認為這是因為 ArrayList 的每個索引的前導空間。停用詞列表:a, is, the, of, all, and, to, can, be, as, once, for, at, am, are, has, have, had, up, his, her, in, on, no, we, do我的策略:String [] TempArray = new String[word.size()];for (int i = 0; i < word.size(); i++) { word.set(i, word.get(i).toLowerCase()); word.set(i, word.get(i).replaceAll("[^a-zA-Z]", ""));} for (int i = 0; i < word.size(); i++) { TempArray[i] = word.get(i); TempArray[i] = TempArray[i].trim(); word.set(i, TempArray[i]); System.out.println(word.get(i));}輸出:[a, blunder, by, anton, chekhov, , an, illustration, for, the, story, a, blunder, by, the, author, anton, chekhov, portrait, of, ivan, lazhechnikov...]任何形式的建議將不勝感激!
2 回答

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
怎么樣:
Arrays.stream(TempArray) .filter(s -> s != null) .map(String::trim) .toArray(String[]::new);
這將創建沒有前導或尾隨空格的新數組。

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
只是為了擴展一點@Andronicus 的答案,這也會從結果數組中刪除空字符串。
Arrays.stream(TempArray) .filter(Objects::nonNull) .map(String::trim) .filter(!String::isEmpty) .toArray(String[]::new);
添加回答
舉報
0/150
提交
取消