删除 ArrayList 中每个索引的前导空格

所以,除了修剪功能,一切都很好。我不知道它是否有效。


实际上我正在使用 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...]

任何形式的建议将不胜感激!


米琪卡哇伊
浏览 124回答 2
2回答

繁华开满天机

怎么样:Arrays.stream(TempArray) &nbsp;&nbsp;&nbsp;&nbsp;.filter(s&nbsp;->&nbsp;s&nbsp;!=&nbsp;null) &nbsp;&nbsp;&nbsp;&nbsp;.map(String::trim) &nbsp;&nbsp;&nbsp;&nbsp;.toArray(String[]::new);这将创建没有前导或尾随空格的新数组。

拉风的咖菲猫

只是为了扩展一点@Andronicus 的答案,这也会从结果数组中删除空字符串。Arrays.stream(TempArray) &nbsp;&nbsp;&nbsp;&nbsp;.filter(Objects::nonNull) &nbsp;&nbsp;&nbsp;&nbsp;.map(String::trim) &nbsp;&nbsp;&nbsp;&nbsp;.filter(!String::isEmpty) &nbsp;&nbsp;&nbsp;&nbsp;.toArray(String[]::new);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java