Всем Привет! У меня есть такая задача, надо разделить строку на слова, записать ее в массив и затем сравнить каждый элемент с каждым в массиве (т.е. каждое слово с каждым) те которые совпали удалить, недавно прочитал о equals()
, который отлично справляется с сравнением строк, но по какой-то причине Он не работает в массиве. Java
начал изучать недавно, поэтому строго не судите по коду, всем Спасибо!
public static void main(String[] args) {
String b = "Привет Привет Привет";
String s[] = b.split(" ");
int i;
for (i = 0; i < s.length; i++) {
if (s[i].equals(s[i + 1])) {
System.out.println(s[i]);
}
}
}
Ваш вариант не учитывает множество пробелов. Тут надо регулярным выражением пользоваться. Извлечь все слова потом поместить в SortedSet
. Почему в SortedSet
? Во-первых, он не допускает дублирование, а во-вторых отсортирует все слова по возрастанию, что облегчает проверку.
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WordParser {
private static final String EXAMPLE_TEST =
"На дворе — трава, на траве — дрова. Не руби дрова на траве двора!";
public static void main(String[] args) {
Pattern pattern =
Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS
| Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
SortedSet<String> words = new TreeSet<>();
while (matcher.find())
words.add(matcher.group().toLowerCase());
for (String word : words)
System.out.println("word = " + word);
}
}
"\w+" - модификатор находит только слова, то есть исключает знаки и т.п.
Pattern.UNICODE_CHARACTER_CLASS - установливает флаг на Юникоде чтобы можно было сделать поиск в любой кодировке. (Если честно не знаю как обстоят дело с поиском слов на азиатских языках как китайский, корейский, японский и т.д.)
Вот что печатает этот класс после запуска:
word = двора
word = дворе
word = дрова
word = на
word = не
word = руби
word = трава
word = траве
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Дано задание : сгенерировать список "блатных" номеров и сделать метод, который будет проверять наличие номера в спискеПрограмма должна работать...
Или вообще есть такая возможность в программе? в видео есть https://wwwyoutube
Получается криво, подскажите как поправитьЯ не верстальщик, столкнулся 1 раз
Мне нужно измерить объем скачанной информации в текущий момент времени(хочу сделать индикатор в процентах)