Предисловие
Я считаю, что каждый должен знать, что в программировании Java иногда нам нужно разделить строку в соответствии с конкретным символом, буквой и т. Д. В качестве точки отсечения, чтобы мы могли использовать часть этой строки или сохранить все перехваченное контент в массив. Следующая статья поделится с вами двумя способами сегментации. Давайте посмотрим вместе.
1. Метод сплит () java.lang.string, jdk 1,4 или позже
public String[] split(String regex,int limit)
Пример кода
открытый класс StringsPlit {public static void main (string [] args) {String sourcestr = "1,2,3,4,5"; String [] sourcestrarray = sourcestr.split (","); for (int i = 0; i <sourcestrarray.length; i ++) {System.out.println (sourcestrarray [i]); } // разделить до 3 строк int maxsplit = 3; sourcestrarray = sourcestr.split (",", maxsplit); for (int i = 0; i <sourcestrarray.length; i ++) {System.out.println (sourcestrarray [i]); }}} Результат вывода:
12345123,4,5
Реализация разделения напрямую вызывает метод разделения класса Matchter. При использовании метода String.split для разграничения строк, если разделитель использует некоторые специальные символы, он может не получить ожидаемые результаты.
Персонажи с особыми значениями в регулярных выражениях должны быть сбежаны, когда мы их используем. Пример:
открытый класс StringsPlit {public static void main (string [] args) {string value = "192.168.128.33"; // Обратите внимание, что вы должны добавить //, либо не выходите, да, string [] names = value.split ("//"); for (int i = 0; i <names.length; i ++) {System.out.println (names [i]); }}}Резюме расщепленного сепаратора
1. Персонажи "|", "*", "+" Должен быть добавлены с сбежавшими персонажами, а "//" добавляется перед ними.
2. Если это "/", то это должно быть написано как "////".
3. Если в строке есть несколько разделителей, вы можете использовать "|" как дефис.
Например: String str = "Java string-split#test" , вы можете использовать Str.split(" |-|#") для разделения каждой строки. Это делит строку на 3 подстроения.
2. java.util.tokenizer JDK 1.0 или позже
StringTokenizer
Класс StringTokenizer позволяет приложениям разбить строки на токены. StringTokenizer - это устаревший класс, который сохраняется по причинам совместимости (хотя он не поощряется в новом коде). Рекомендуется, чтобы все те, кто ищет эту функцию, использовал метод разделения строки или пакет java.util.regex.
Пример кода
открытый класс StringsPlit {public static void main (string [] args) {String ip = "192.168.128.33"; StringTokenizer token = new StringTokenizer (ip, "."); while (token.hasmoreElements ()) {System.out.print (token.nexttoken ()+""); }}}Однако для разделения строки «192.168..33» возвращаемый строковый массив имеет только 3 элемента, а пустая строка между двумя разделителями будет проигнорирована. Это должно использоваться с осторожностью.
Тем не менее, String.split ( String.split соответствует регулярным выражениям, поэтому он не использует алгоритм соответствия строк KMP), использующие алгоритмы, которые проходят в последовательности, с высокой временной сложностью o (m*n), поэтому с точки зрения производительности, StringTokenizer гораздо лучше. Для приложений, которые часто используют сегментацию строк, такие как обработка данных ETL, производительность использования StringTokenizer может быть значительно улучшена.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи поможет вашему обучению или работе. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.