Удалить ведущие пробелы каждого индекса в ArrayList - PullRequest
0 голосов
/ 11 марта 2019

Итак, все работает нормально, кроме функции обрезки. Я не знаю, работает ли он или нет.

На самом деле я делаю инвертированный индекс, используя ArrayList. Извлечение строк из файлов, разбиение на слова (токенизация) и удаление знаков препинания. Когда я добираюсь до части удаления стоп-слов, это не совпадает со стоп-словами, предоставленными в файле. Я думаю, что это из-за пробела в каждом индексе ArrayList.

Список StopWords:

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...]

Буду признателен за любые предложения!

1 Ответ

3 голосов
/ 11 марта 2019

Как насчет:

Arrays.stream(TempArray)
    .filter(s -> s != null)
    .map(String::trim)
    .toArray(String[]::new);

Это создает новый массив без начальных или конечных пробелов.

...