- Rukovodstvo
- статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
- Как разбить строку в Java
- Введение Часто мы сталкиваемся с ситуацией, когда нам нужно разделить строку на определенный символ или подстроку, чтобы извлечь из нее полезную информацию. Например, мы можем разделить номер телефона на код страны или данные, импортированные из файла CSV. В этой статье мы расскажем, как разбить строку в Java. Метод split () (без ограничений) Этот метод принимает один параметр String в формате регулярного выражения (regex). Этот метод разбивает нить вокруг мата.
- Вступление
- Метод split () (без ограничений)
- Метод Java split () (с ограничением)
- Положительное предельное значение
- Примечание о специальных символах
- Заключение
- 3.7. Java примеры – Разбиение строки на слова и символы в массив и по разделителю
- Результат
- Решение 2: разбить строку на слова
- Результат
- Решение 3: разбить строку на символы в массив
- Результат
- Оглавление
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Как разбить строку в Java
Введение Часто мы сталкиваемся с ситуацией, когда нам нужно разделить строку на определенный символ или подстроку, чтобы извлечь из нее полезную информацию. Например, мы можем разделить номер телефона на код страны или данные, импортированные из файла CSV. В этой статье мы расскажем, как разбить строку в Java. Метод split () (без ограничений) Этот метод принимает один параметр String в формате регулярного выражения (regex). Этот метод разбивает нить вокруг мата.
Вступление
Часто мы сталкиваемся с ситуацией, когда нам нужно разделить строку на определенный символ или подстроку, чтобы извлечь из нее полезную информацию.
Например, мы можем разделить номер телефона на код страны или данные, импортированные из файла CSV.
В этой статье мы расскажем, как разбить строку в Java.
Метод split () (без ограничений)
Этот метод принимает один String в формате регулярного выражения (regex). Этот метод разбивает строку вокруг совпадений с заданным регулярным выражением.
String[] split(String regex, int limit)
Где regex представляет собой разделитель, то есть в зависимости от того, что мы разделим нашу строку. Имейте в виду, что этот параметр не должен быть чем-то сложным, Java просто предоставляет возможность использования регулярных выражений.
Например, давайте посмотрим, как мы можем разделить эту строку на два отдельных имени:
String myString = "Jane-Doe"; String[] splitString = myString.split("-");
Мы можем просто использовать символ / подстроку вместо фактического регулярного выражения. Конечно, в регулярном выражении есть определенные специальные символы, о которых нам нужно помнить и избегать их, если нам нужно их буквальное значение.
После разделения строки результат возвращается в виде массива строк. Строки в возвращаемом массиве появляются в том же порядке, что и в исходной строке.
Результаты упаковываются в массив String. Чтобы получить отдельные имена, мы можем получить доступ к каждому элементу:
System.out.println(splitString[0]); System.out.println(splitString[1]);
Имейте в виду, что этот метод разделит строку на все вхождения разделителя. Например, у нас может быть вход в формате CSV:
String myString = "Jane,21,Employed,Software Engineer"; String[] splitString = myString.split(","); for (String s : splitString)
Jane 21 Employed Software Engineer
Метод Java split () (с ограничением)
Здесь метод принимает два параметра, один из которых является ранее обсужденным regex , а другой — целочисленным значением, обозначающим limit . Параметр limit используется, чтобы решить, сколько раз мы хотим разделить строку.
Параметр limit может принимать одну из трех форм, т. Е. Он может быть больше, меньше или больше нуля. Давайте посмотрим, что представляет собой каждая из этих ситуаций:
- Положительный limit — String будет разделена до максимального limit — 1 раз. Помимо этого, остальная часть строки будет возвращена как последний элемент массива, как есть, без разделения. Длина возвращаемого массива всегда будет меньше или равна limit .
- Отрицательный limit — String разделяется по разделителю столько раз, сколько возможно, игнорируя конкретный набор отрицательных значений. Подстроки в массиве включают конечные пробелы в исходной строке, если они есть.
- Когда limit установлен на 0 — String снова разделяется столько раз, сколько возможно, и нет ограничения на длину результирующего массива. Он работает так же, как вызов split() с регулярным выражением в качестве единственного аргумента, как было показано ранее. В этом случае конечные пробелы не возвращаются.
Положительное предельное значение
Давайте рассмотрим несколько примеров использования разных лимитов. Во-первых, положительное limit значение:
String myString = "there,,are,more,than,three,commas. "; String [] splitStrings = myString.split(",", 4); for(String string : splitStrings)
При ограничении в 4 String будет разделена не более трех ( limit — 1 ) раз. Это дает нам массив с четырьмя элементами (0..3), последним элементом является все, что находится после третьего разделения:
"there" "" "are" "more,than,three,commas. "
Если бы мы использовали отрицательный limit для этой же String:
String myString = "there,,are,more,than,three,commas. "; String [] splitStrings = myString.split(",", -1); for(String string : splitStrings)
String будет разделена столько раз, сколько возможно, а завершающие пустые строки будут добавлены в массив:
"there" "" "are" "more" "than" "three" "commas" "" "" ""
Фактическое отрицательное значение, которое мы использовали, не принимается во внимание, мы бы получили тот же результат, если бы использовали -150 .
Если мы установим limit на 0 , строка снова будет разделена столько раз, сколько возможно, но результирующий массив не будет содержать конечных пустых пробелов:
String myString = "there,,are,more,than,three,commas. "; // Equivalent to calling the split() method with only the regex parameter String [] splitStrings = myString.split(",", 0); for(String string : splitStrings)
"there" "" "are" "more" "than" "three" "commas"
Примечание о специальных символах
Как мы упоминали ранее, regex переданный в качестве разделителя в split() является регулярным выражением. Мы должны обязательно экранировать специальные символы, если мы хотим использовать их буквальное значение в качестве разделителя. Например, * означает «один или несколько экземпляров следующего символа (ов)».
Если мы хотим разбить String по одному из этих символов, необходимо соблюдать особую осторожность, чтобы экранировать эти символы в параметрах метода. Один из способов использовать это — использовать обратную косую черту \ . Например:
Разделяет string переменной на | персонаж. Здесь мы используем две обратной косой черты, так как нам нужно сначала избежать Java-значения обратной косой черты, поэтому обратная косая черта может быть применена к | персонаж.
Вместо этого мы можем использовать набор символов регулярного выражения. Это относится к помещению специальных символов, которые нужно экранировать, в квадратных скобках. Таким образом, специальные символы обрабатываются как обычные символы. Например, мы могли бы использовать | в качестве разделителя, сказав:
Еще один способ избежать специальных символов — использовать Pattern.quote() :
Заключение
Метод split() класса Java String — очень полезный и часто используемый инструмент. Большинство данных, особенно полученные при чтении файлов, потребуют некоторой предварительной обработки, такой как разделение строки, чтобы получить из нее значимую информацию.
В этой статье мы рассмотрели, как разбивать строки в Java.
Licensed under CC BY-NC-SA 4.0
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 разбить строку на слова.
Результат
Получим следующий результат:
Решение 3: разбить строку на символы в массив
Следующий пример показывает как разбить строку на массив по символу. Для этого просто преобразуем строку в массив с помощью метода toCharArray().
Результат
Получим следующий результат:
Оглавление
- 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