Как разбить String на отдельные слова в Java?
Всем Привет! У меня есть такая задача, надо разделить строку на слова, записать ее в массив и затем сравнить каждый элемент с каждым в массиве (т.е. каждое слово с каждым) те которые совпали удалить, недавно прочитал о 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]); >> >
Отслеживать
2,423 3 3 золотых знака 17 17 серебряных знаков 40 40 бронзовых знаков
задан 7 июл 2017 в 22:27
user257846 user257846
Что значит не работает в массиве? Вам нужно удалить дубликаты слов из строки?
7 июл 2017 в 23:40
я доработал уже все работает,осталось одна проблема надо удалить все те слова которые повторяются
– user257846
7 июл 2017 в 23:41
public static void main(String[] args) < String b = "A A A"; String s[] = b.split(" "); int i; int y; for (i = 0; i < s.length - 1; i++) < for (y = i + 1; y < s.length; y++) if (s[i].equals(s[y])) < System.out.println("i=" + i + " y=" + y + " ->» + s[i]); > >
– user257846
7 июл 2017 в 23:45
тогда уберите эту фразу из вопроса. Вы может использовать Set. Это автоматически избавит вас от повторов.
7 июл 2017 в 23:51
можно поподробней пожалуйста
– user257846
7 июл 2017 в 23:52
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Если воспользоваться возможностями Stream API, то можно решить задачу даже проще:
String s = . Stream.of(s.split("[^A-Za-zА-Яа-я]+")) .map(String::toLowerCase) .distinct().sorted() .forEach(System.out::println);
Отслеживать
ответ дан 17 июл 2017 в 18:52
Alex Chermenin Alex Chermenin
5,448 15 15 серебряных знаков 36 36 бронзовых знаков
Ваш вариант не учитывает множество пробелов. Тут надо регулярным выражением пользоваться. Извлечь все слова потом поместить в SortedSet . Почему в SortedSet ? Во-первых, он не допускает дублирование, а во-вторых отсортирует все слова по возрастанию, что облегчает проверку.
Pattern.UNICODE_CHARACTER_CLASS — установливает флаг на Юникоде чтобы можно было сделать поиск в любой кодировке. (Если честно не знаю как обстоят дело с поиском слов на азиатских языках как китайский, корейский, японский и т.д.)
Вот что печатает этот класс после запуска:
word = двора
word = дворе
word = дрова
word = на
word = не
word = руби
word = трава
word = траве
3.7. Java примеры – Разбиение строки на слова и символы в массив и по разделителю
Следующий пример показывает как разделить строку в Java по разделителю с помощью метода split() и вывести подстроку.
public class Example < public static void main(String args[]) < System.out.println("Пример 1:"); String str = "разделить-строку-по-разделителю"; String[] subStr; String delimeter = "-"; // Разделитель subStr = str.split(delimeter); // Разделения строки str с помощью метода split() // Вывод результата на экран for(int i = 0; i < subStr.length; i++) < System.out.println(subStr[i]); >// Ещё один пример разделения System.out.println("\nПример 2:"); str = "разделить.строку.по разделителю"; delimeter = "\\."; // Разделитель subStr = str.split(delimeter); // Вывод результата на экран for(int i = 0; i < subStr.length; i++) < System.out.println(subStr[i]); >// Ещё один пример разделения с использованием порога System.out.println("\nПример 3:"); str = "разделить!строку!по!разделителю"; delimeter = "!"; // Разделитель subStr = str.split(delimeter, 3); // Разбить строку str с порогом равным 3, который означает, как много подстрок, должно быть возвращено. // Вывод результата на экран for(int i = 0; i < subStr.length; i++) < System.out.println(subStr[i]); >> >
Результат
Получим следующий результат:
Пример 1: разделить строку по разделителю Пример 2: разделить строку по разделителю Пример 3: разделить строку по!разделителю
Решение 2: разбить строку на слова
Ниже продемонстрирован пример, который позволяет в Java разбить строку на слова.
public class Example < public static void main(String args[]) < String str = "разбить строку на слова"; String[] words = str.split("\\s"); // Разбиение строки на слова с помощью разграничителя (пробел) // Вывод на экран for(String subStr:words) < System.out.println(subStr); >> >
Результат
Получим следующий результат:
разбить строку на слова
Решение 3: разбить строку на символы в массив
Следующий пример показывает как разбить строку на массив по символу. Для этого просто преобразуем строку в массив с помощью метода toCharArray().
public class Example < public static void main(String args[]) < String str = "ProgLang"; char[] strToArray = str.toCharArray(); // Преобразуем строку str в массив символов (char) // Вывод массива на экран for(int i = 0; i < strToArray.length; i++) < System.out.print(strToArray[i] + " "); // Для наглядности вставим пробел между индексами >> >
Результат
Получим следующий результат:
P r o g L a n g
Оглавление
- 1. Java примеры – Использование кода на практике
- 2. Java примеры – Окружающая среда
- 2.1. Java примеры – Скомпилировать файл
- 2.2. Java примеры – Установить путь к нескольким классам
- 2.3. Java примеры – Отладка java-файла
- 2.4. Java примеры – Установить путь к классу
- 2.5. Java примеры – Просмотреть текущий путь класса
- 2.6. Java примеры – Установить назначение файла класса
- 2.7. Java примеры – Запустить скомпилированный java-файл класса
- 2.8. Java примеры – Узнать версию Java
- 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
- 3. Java примеры – Строки
- 3.1. Java примеры – Сравнить две строки
- 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
- 3.3. Java примеры – Удалить нужный символ из строки
- 3.4. Java примеры – Заменить символ в строке
- 3.5. Java примеры – Вывод в обратном порядке
- 3.6. Java примеры – Нахождение символа или слова в строке
- 3.7. Java примеры – Разбиение строки на слова и символы
- 3.8. Java примеры – Преобразование строки в верхний регистр
- 3.9. Java примеры – Найти слово в строке
- 3.10. Java примеры – Сравнить производительность создания строки
- 3.11. Java примеры – Оптимизировать создание строк
- 3.12. Java примеры – Форматирование строк
- 3.13. Java примеры – Конкатенация строк
- 3.14. Java примеры – Определить код Юникода символа в строке
- 3.15. Java примеры – Буферизация строк
- 4. Java примеры – Массивы
- 4.1. Java примеры – Сортировка массива и поиск элемента
- 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
- 4.3. Java примеры – Размер двумерного массива
- 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
- 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
- 4.6. Java примеры – Найти максимальный и минимальный элемент массива
- 4.7. Java примеры – Соединить два массива в один
- 4.8. Java примеры – Как заполнить массив числами
- 4.9. Java примеры – Увеличить массив после инициализации
- 4.10. Java примеры – Сравнение двух массивов
- 4.11. Java примеры – Удаление элемента из массива
- 4.12. Java примеры – Удаление массива из другого массива
- 4.13. Java примеры – Одинаковые элементы массивов
- 4.14. Java примеры – Поиск в массиве
- 4.15. Java примеры – Равенство двух массивов
- 4.16. Java примеры – Сравнить массивы
- 5. Java примеры – Дата и время
- 5.1. Java примеры – Форматирование времени в формате AM-PM
- 5.2. Java примеры – Получение названия и номера текущего месяца
- 5.3. Java примеры – Получить текущее время в часах и минутах
- 5.4. Java примеры – Вывести текущее время и дату
- 5.5. Java примеры – Вывести текущее время в 24-часовом формате
- 5.6. Java примеры – Получить текущий месяц
- 5.7. Java примеры – Получить текущие секунды
- 5.8. Java примеры – Получить короткое название месяца
- 5.9. Java примеры – Получить день недели
- 5.10. Java примеры – Добавление времени к дате
- 5.11. Java примеры – Отображение времени в формате другой страны
- 5.12. Java примеры – Отображение времени на разных языках
- 5.13. Java примеры – Прокрутить часы и месяцы
- 5.14. Java примеры – Получить номер недели и месяц в году
- 5.15. Java примеры – Форматы текущей даты
- 6. Java примеры – Методы
- 6.1. Java примеры – Перезагрузка методов
- 6.2. Java примеры – Вывод массива с использованием метода
- 6.3. Java примеры – Решение Ханойской башни
- 6.4. Java примеры – Последовательность чисел Фибоначчи
- 6.5. Java примеры – Вычисление факториала числа
- 6.6. Java примеры – Переопределение метода
- 6.7. Java примеры – Вывод массива с использованием метода
- 6.8. Java примеры – Использование оператора break
- 6.9. Java примеры – Использование оператора continue
- 6.10. Java примеры – Использование метки в методе
- 6.11. Java примеры – Использование операторов enum и switch
- 6.12. Java примеры – Использование конструктора enum
Разделить строку на любой символ пробела в Java
В этом посте будет обсуждаться, как разделить строку на любой символ пробела в Java.
Символ называется пробельным символом в Java тогда и только тогда, когда Character.isWhitespace(char) метод возвращает истину. Наиболее часто используемые пробельные символы: ‘ ‘ , ‘\t’ , ‘\n’ , ‘\r’ а также ‘f’ . Есть несколько способов разбить строку на пробельные символы:
1. Использование String.split() метод
Стандартное решение для разделения строки использует split() метод, предоставляемый String учебный класс. Он принимает регулярное выражение в качестве разделителя и возвращает массив строк. Чтобы разделить любой символ пробела, вы можете использовать предопределенный класс символов \s который представляет символ пробела.
Как разбить строку на массив java
Чтобы разбить строку на массив строк в Java, нужно использовать метод строки split() , передав туда регулярное выражение в качестве разделителя:
String text = "one two three"; String[] words = text.split(" "); System.out.println(Arrays.toString(words)); // => ["one", "two", "three"]