Successfully reported this slideshow.
Your SlideShare is downloading. ×

Урок 14. Строки в языке Java

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 74 Ad

Урок 14. Строки в языке Java

Download to read offline

Классы String, StringBuffer и StringBuilder и их методы.
Классы Formatter, PrintStream, PrintWriter.
Метод format().
Спецификаторы и флаги формата.
Общий синтаксис форматирования строк.
Регулярные выражения.
Лекции, задания, видео, тесты и вопросы на:
https://www.examclouds.com/ru/java/java-core-russian/lesson12
Подписывайтесь на страницу:
https://www.facebook.com/Examclouds
Подписывайтесь на канал
https://www.youtube.com/c/tatyanamilkina

Классы String, StringBuffer и StringBuilder и их методы.
Классы Formatter, PrintStream, PrintWriter.
Метод format().
Спецификаторы и флаги формата.
Общий синтаксис форматирования строк.
Регулярные выражения.
Лекции, задания, видео, тесты и вопросы на:
https://www.examclouds.com/ru/java/java-core-russian/lesson12
Подписывайтесь на страницу:
https://www.facebook.com/Examclouds
Подписывайтесь на канал
https://www.youtube.com/c/tatyanamilkina

Advertisement
Advertisement

More Related Content

Slideshows for you (16)

Similar to Урок 14. Строки в языке Java (20)

Advertisement

Recently uploaded (15)

Урок 14. Строки в языке Java

  1. 1. 1. Классы String, StringBuffer и StringBuilder и их методы. 2. Классы Formatter, PrintStream, PrintWriter. 3. Метод format(). 4. Спецификаторы и флаги формата. 5. Общий синтаксис форматирования строк. 6. Регулярные выражения. www.examclouds.com
  2. 2. Работа со строками Системная библиотека Java содержит следующие классы, поддерживающие работу со строками и определенные в пакете java.lang, подключаемом автоматически:  String,  StringBuilder,  StringBuffer. www.examclouds.com
  3. 3. Работа со строками Эти классы объявлены как final, что означает невозможность создания собственных порожденных классов со свойствами строки. www.examclouds.com
  4. 4. Конструкторы String  Класс String поддерживает несколько конструкторов, например:  String(),  String(String str),  String(byte[] asciichar),  String(char[] unicodechar),  String(StringBuffer sbuf),  String(StringBuilder sbuild) и др. www.examclouds.com
  5. 5. Пример создания строк public class StringDemo1 { public static void main(String[] args) { String str1 = new String(); System.out.println("str1:[" + str1 + "]"); char[] chars1 = {'а', 'b', 'с'}; String str2 = new String(chars1); System.out.println("str2:" + str2); char[] chars2 = {'a', 'b', 'с', 'd', 'e', 'f'}; String str3 = new String(chars2, 2, 3); System.out.println("str3:" + str3); String str4 = "abc"; System.out.println("str4:" + str4); System.out.println("str4.length:" + str4.length()); System.out.println("abc.length:" + "abc".length()); String str5 = new String(str4); System.out.println("str5:" + str5); } } www.examclouds.com
  6. 6. Пример создания строк из массива byte[] public class StringDemo2 { public static void main(String[] args) { byte[] bytes = {65, 66, 67, 68, 69, 70}; String s1 = new String(bytes); System.out.println(s1); String s2 = new String(bytes, 2, 3); System.out.println(s2); } } www.examclouds.com
  7. 7. Сравнение строк public class EqualsDemo { public static void main(String[] args) { String s1 = "Hello"; String s2 = "Hello"; String s3 = "Good-bye"; String s4 = "HELLO"; System.out.println(s1 + " equals " + s2 + " -> " + s1.equals(s2)); System.out.println(s1 + " equals " + s3 + " -> " + s1.equals(s3)); System.out.println(s1 + " equals " + s4 + " -> " + s1.equals(s4)); System.out.println(s1 + " equalsIgnoreCase " + s4 + " -> " + s1.equalsIgnoreCase(s4)); } } www.examclouds.com
  8. 8. String pool www.examclouds.com
  9. 9. Сравнение строк public class EqualStrings { public static void main(String[] args) { String s1 = "Java"; String s2 = "Java"; String s3 = new String("Java"); String s4 = new String(s1); System.out.println("s1==s2 : " + (s1 == s2)); System.out.println("s3==s4 : " + (s3 == s4)); System.out.println("s1==s3 : " + (s1 == s3)); System.out.println("s1 equals s2 : " + s1.equals(s2)); System.out.println("s1 equals s3 : " + s1.equals(s3)); } } www.examclouds.com
  10. 10. Сравнение подстрок  В классе String реализована группа сервисных методов, являющихся специализированными версиями метода equals().  Метод regionMatches() используется для сравнения подстроки в исходной строке с подстрокой в строке-параметре.  Метод startsWith() проверяет, начинается ли данная подстрока фрагментом, переданным методу в качестве параметра.  Метод endsWith() проверяет, совпадает ли с параметром конец строки.  Метод contains() проверяет, содержит ли строка заданную подстроку. www.examclouds.com
  11. 11. Сравнение подстрок public class StringDemo5 { public static void main(String[] args) { System.out.println("Foobar".endsWith("bar")); System.out.println("Foobar".startsWith("Foo")); System.out.println("Foobar".contains("oo")); System.out.println("Hello world!!!“ .regionMatches(6, "world", 0, 3)); } } www.examclouds.com
  12. 12. Задание  Напишите метод, который принимает в качестве параметра любую строку, например “I like Java!!!”.  Проверить, заканчивается ли ваша строка подстрокой “!!!”. Используем метод String.endsWith().  Проверить, начинается ли ваша строка подстрокой “I like”. Используем метод String.startsWith().  Проверить, содержит ли ваша строка подстроку “Java”. Используем метод String.contains(). www.examclouds.com
  13. 13. Метод compareTo()  Зачастую бывает недостаточно просто знать, являются ли две строки идентичными. Для приложений, в которых требуется сортировка, нужно знать, какая из двух строк меньше другой. Для ответа на этот вопрос нужно воспользоваться методом compareTo(str) класса String.  Меньше нуля - вызывающая строка меньше str.  Больше нуля - вызывающая строка больше str.  Ноль - две строки эквивалентны. www.examclouds.com
  14. 14. Сортировка пузырьком public class SortString { private static String[] array = { "Для", "работы", "со", "строками", "в", "языке", "Java", "используются", "классы", "String", "StringBuilder", "StringB }; public static void main(String[] args) { for (int j = 0; j < array.length; j++) { for (int i = j + 1; i < array.length; i++) { if (array[i].compareTo(array[j]) < 0) { String t = array[j]; array[j] = array[i]; array[i] = t; } } } System.out.println(Arrays.toString(array)); } } www.examclouds.com
  15. 15. Извлечение символов – charAt() public class StringDemo3 { public static void main(String[] args) { char ch = "аbс".charAt(1); System.out.println(ch); } } www.examclouds.com
  16. 16. Задание  Распечатать последний символ строки. Используем метод String.charAt(). www.examclouds.com
  17. 17. indexOf() и lastlndexOf()  В класс String включена поддержка поиска определенного символа или подстроки, для этого в нем имеются два метода — indexOf() и lastIndexOf().  indexOf() - ищет первое вхождение символа или подстроки.  lastlndexOf() - ищет последнее вхождение символа или подстроки.  Каждый из этих методов возвращает индекс того символа, который вы хотели найти, либо индекс начала искомой подстроки. В любом случае, если поиск оказался неудачным методы возвращают значение -1. www.examclouds.com
  18. 18. indexOf() и lastlndexOf() 1. Чтобы найти первое или последнее вхождение символа, применяйте: int indexOf(char ch) int lastlndexOf(char ch) Здесь ch символ, который нужно искать. 2. Чтобы найти первое или последнее вхождение подстроки, применяйте: int indexOf(String str) int lastlndexOf(String str) www.examclouds.com
  19. 19. indexOf() и lastlndexOf() Вы можете указать начальную позицию для поиска, воспользовавшись следующими формами: int indexOf(int ch, int startIndex) int lastlndexOf(int ch, int startIndex) int indexOf(String str, int startIndex) int lastlndexOf(String str, int startIndex) www.examclouds.com
  20. 20. Пример indexOf() и lastlndexOf()  public class IndexOfDemo { public static void main(String[] args) { String s = "Для работы со строками в языке Java используются " + "классы String, StringBuilder, StringBuffer."; System.out.println(s); System.out.println("indexOf(S) = " + s.indexOf('S')); System.out.println("lastIndexOf(r) = " + s.lastIndexOf('r')); System.out.println("indexOf(String) = " + s.indexOf("String")); System.out.println("lastIndexOf(String) = " + s.lastIndexOf("String")); System.out.println("indexOf(S, 60) = " + s.indexOf('S', 60)); System.out.println("lastIndexOf(S, 70) = " + s.lastIndexOf('S', 70)); } } www.examclouds.com
  21. 21. Задание  Найти позицию подстроки “Java” в строке “I like Java!!!” www.examclouds.com
  22. 22. Пример использования методов  Методы concat(), replace(), toLowerCase(), toUpperCase(), trim(). public class ModifyStringDemo { public static void main(String[] args) { System.out.println("Hello".concat(" World")); System.out.println("Hello".replace('l', 'w')); System.out.println("Hello".toLowerCase()); System.out.println("Hello".toUpperCase()); System.out.println(" Hello World ".trim()); } } www.examclouds.com
  23. 23. Задание  Заменить все символы “а” на “о”.  Преобразуйте строку к верхнему регистру.  Преобразуйте строку к нижнему регистру. www.examclouds.com
  24. 24. Преобразование данных с помощью valueOf() Если Вы имеете дело с каким-либо типом данных и хотите вывести значение этого типа в удобочитаемом виде, сначала придется преобразовать это значение в текстовую строку. Для этого существует метод valueOf(). Такой статический метод определен для любого существующего в Java типа данных. Благодаря этому не составляет труда преобразовать в строку значение любого типа. static String valueOf(double num) static String valueOf(long num) static String valueOf(Object оb) static String valueOf(char chars[]) www.examclouds.com
  25. 25. Пример использования метода substring() public class SubstringDemo { public static void main(String[] args) { System.out.println("Welcome to Kharkiv!!!".substring(10)); System.out.println("Welcome to Kharkiv!!!".substring(10, 18)); } } www.examclouds.com
  26. 26. Задание  Вырезать строку Java c помощью метода String.substring. www.examclouds.com
  27. 27. Методы isEmpty(), isBlank()  Метод isEmpty() проверяет пустая ли строка. Возвращает true, только если длина строки равно 0.  Метод isBlank() возвращает true, если строка пуста или содержит только пробелы (Java 11). public class StringEmpty { public static void main(String[] args) { System.out.println("".isEmpty()); System.out.println(" ".isEmpty()); System.out.println(" ".isBlank()); } } www.examclouds.com
  28. 28. Соединение символьных строк  В версию JDK 8 в класс String был внедрен новый метод join(), предназначенный для соединения двух и более символьных строк, разграничиваемых указанным разделителем, например, пробелом или запятой. public class StringJoinDemo { public static void main(String[] args) { String result = String.join(":", "foobar", "foo", "bar"); System.out.println(result); } } www.examclouds.com
  29. 29. Классы StringBuffer и StringBuilder 1. Классы StringBuffer и StringBuilder в Java используются, когда возникает необходимость сделать много изменений в строке символов. 2. В отличие от String, объекты типа StringBuffer и StringBuilder могут быть изменены снова и снова. www.examclouds.com
  30. 30. Классы StringBuffer и StringBuilder  В Java StringBuilder был введен начиная с Java 5.  Основное различие между StringBuffer и StringBuilder является то, что методы StringBuilder не являются безопасными для потоков (несинхронизированные). www.examclouds.com
  31. 31. Классы StringBuffer и StringBuilder  Рекомендуется использовать StringBuilder всякий раз, когда это возможно, потому что он быстрее, чем StringBuffer в Java.  Однако, если необходима безопасность потоков, наилучшим вариантом являются объекты StringBuffer. www.examclouds.com
  32. 32. Конструкторы StringBuilder  StringBuilder() - объект StringBuilder можно создать без параметров, при этом в нем будет зарезервировано место для размещения 16 символов.  StringBuilder(int size) - вы также можете передать конструктору целое число, для того чтобы явно задать требуемый размер буфера.  StringBuilder(String str) - вы можете передать конструктору строку, при этом она будет скопирована в объект и дополнительно к этому в нем будет зарезервировано место еще для 16 символов.  StringBuilder(CharSequence chars) www.examclouds.com
  33. 33. Пример создания объекта StringBuilder public class StringBuilderDemo1 { public static void main(String[] args) { StringBuilder stringBuilder = new StringBuilder("Hello"); System.out.println("string = " + stringBuilder); System.out.println("length = " + stringBuilder.length()); System.out.println("capacity = " + stringBuilder.capacity()); } } www.examclouds.com
  34. 34. Пример использования методов charAt(), setCharAt() public class SetCharAtDemo { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); System.out.println(sb); System.out.println("charAt(1) = " + sb.charAt(1)); sb.setCharAt(1, 'i'); sb.setLength(2); System.out.println(sb); } } www.examclouds.com
  35. 35. Пример использования метода append() public class AppendDemo { public static void main(String[] args) { int a = 42; StringBuilder sb = new StringBuilder(40); String s = sb.append("a = ").append(a).append("!").toString(); System.out.println(s); } } www.examclouds.com
  36. 36. Задание  Дано два числа, например 3 и 56, необходимо составить следующие строки:  3 + 56 = 59  3 – 56 = -53  3 * 56 = 168  Используем метод StringBuilder.append(). www.examclouds.com
  37. 37. Пример использования метода insert() public class InsertDemo { public static void main(String[] args) { StringBuilder sb = new StringBuilder("I Java!"); sb.insert(2, "like "); System.out.println(sb); } } www.examclouds.com
  38. 38. Пример использования метода reverse() public class ReverseDemo { public static void main(String[] args) { StringBuilder s = new StringBuilder("abcdef"); System.out.println(s); s.reverse(); System.out.println(s); } } www.examclouds.com
  39. 39. Пример использования методов delete() и deleteCharAt() public class DeleteDemo { public static void main(String[] args) { StringBuilder sb = new StringBuilder("This is a test."); sb.delete(4, 7); System.out.println("После delete: " + sb); sb.deleteCharAt(0); System.out.println("После deleteCharAt: " + sb); } } www.examclouds.com
  40. 40. Задание  Замените символ “=” на слово “равно”.  Используйте методы StringBuilder.insert(), StringBuilder.deleteCharAt(). www.examclouds.com
  41. 41. Пример использования метода replace() public class ReplaceDemo { public static void main(String[] args) { StringBuilder stringBuilder = new StringBuilder("Этo простой тест stringBuilder.replace(4, 11, "был"); System.out.println("После замены: " + stringBuilder); } } www.examclouds.com
  42. 42. Задание  Замените символ “=” на слово “равно”.  Используйте методы StringBuilder.replace(). www.examclouds.com
  43. 43. Метод equals()  Классы StringBuilder и StringBuffer не переопределяют методы equals() и hashCode()!!!  Они используют реализацию класса Object. public class StringBuilderEquals { public static void main(String[] args) { StringBuilder stringBuilder1 = new StringBuilder("Hello"); StringBuilder stringBuilder2 = new StringBuilder("Hello"); System.out.println(stringBuilder1.equals(stringBuilder2)); System.out.println(stringBuilder1 == stringBuilder2); } } www.examclouds.com
  44. 44. Класс Formatter • Базовой частью поддержки создания форматированного вывода в языке Java служит класс Formatter, включенный в пакет java.util. Он обеспечивает преобразования формата (format conversions) позволяющие выводить числа, строки и время и даты практически в любом понравившемся вам формате. • В классе Formatter объявлен метод format(), который преобразует переданные в него параметры в строку заданного формата и сохраняет в объекте типа Formatter. www.examclouds.com
  45. 45. Пример использования класса Formatter • This __ is about __ __ • %s - спецификатора формата import java.util.Formatter; public class SimpleFormatString { public static void main(String[] args) { Formatter f = new Formatter(); f.format("This %s is about %n%S %c", "book", "java", '9'); System.out.print(f); } } www.examclouds.com
  46. 46. Задание • Создать строку, используя форматирование: • Студент [Фамилия] получил [оценка] по [предмету]. • Форматирование и вывод строки на консоль написать в отдельном методе, который принимает фамилию, оценку и название предмета в качестве параметров. www.examclouds.com
  47. 47. Пример использования класса Formatter import java.util.Formatter; public class FormatDemo1 { public static void main(String[] args) { double x = 1000.0 / 3.0; System.out.println("Строка без форматирования: " + x); Formatter formatter = new Formatter(); formatter.format("Строка c форматированием: %.2f%n", x); formatter.format("Строка c форматированием: %8.2f%n", x); formatter.format("Строка c форматированием: %16.2f%n", x); System.out.println(formatter); } } www.examclouds.com
  48. 48. Задание Выделить под фамилию 15 символов, под оценку 3 символа, предмет – 10. www.examclouds.com
  49. 49. Классы PrintStream, PrintWriter • Аналогичный метод format() объявлен у классов PrintStream и PrintWriter. • System.out это статическая переменная типа PrintStream. • В Java 5 для классов PrintStream и PrintWriter добавлен метод printf(). • Методы printf() и format() автоматически использует класс Formatter. www.examclouds.com
  50. 50. Пример форматирования с использованием класса PrintStream public class FormatDemo4 { public static void main(String[] args) { System.out.printf("Строка c форматированием: %.2f%n", 1000.0 / 3.0 System.out.format("%s, в следующем году вам будет %d", "Джон", 23) } } www.examclouds.com
  51. 51. Задание • Переделываем предыдущее задание используя метод System.out.printf. www.examclouds.com
  52. 52. Класс String • Класс String содержит метод format(). public class StringFormatDemo { public static void main(String[] args) { String str = String.format("Строка c форматированием: %16.2f", 1000.0 / 3.0); System.out.println(str); } } www.examclouds.com
  53. 53. Задание Переделать toString() для класса Person используя форматирование. www.examclouds.com
  54. 54. Спецификаторы формата %a Шестнадцатеричное значение с плавающей точкой %b Логическое (булево) значение аргумента %c Символьное представление аргумента %d Десятичное целое значение аргумента %h Хэш-код аргумента %e Экспоненциальное представление аргумента %f Десятичное значение с плавающей точкой %g Выбирает более короткое представление из двух: %е или %f %o Восьмеричное целое значение аргумента %n Вставка символа новой строки %s Строковое представление аргумента %t Время и дата %x Шестнадцатеричное целое значение аргумента %% Вставка знака % www.examclouds.com
  55. 55. Флаги формата • - Выравнивание влево • # Изменяет формат преобразования • 0 Выводит значение, дополненное нулями вместо пробелов. Применим только к числам. • Пробел Положительные числа предваряются пробелом • + Положительные числа предваряются знаком +. Применим только к числам. • , Числовые значения включают разделители групп. Применим только к числам. • ( Отрицательные числовые значения заключаются в скобки. Применим только к числам. www.examclouds.com
  56. 56. Пример использования флагов public class FormatterDemo2 { public static void main(String[] args) { System.out.printf("%,.2f%n", 10000.0 / 3.0); System.out.printf("%, (.2f%n", -10000.0 / 3.0); System.out.printf("%09.2f%n", 10000.0 / 3.0); } } www.examclouds.com
  57. 57. Пример • В строке, определяющей формат, может задаваться индекс форматируемого параметра. Индекс должен следовать непосредственно за символом % и завершаться знаком $. public class FormatterDemo3 { public static void main(String[] args) { System.out.printf("Hello %1$s!%n%1$s, how are you?%n" + "Welcome to the site %2$s", "John", "www.site.com"); } } www.examclouds.com
  58. 58. Общий синтаксис • Общий синтаксис можно описать так: %[аргумент_индекс][флаги][ширина][.точность]с имвол_преобразования www.examclouds.com
  59. 59. Регулярные выражения • Регулярное выражение - это своего рода шаблон, который может быть применен к тексту. • Java предоставляет пакет java.util.regex для сопоставления с регулярными выражениями. • Регулярное выражение или соответствует тексту (его части) или нет. • Если регулярное выражение совпадает с частью текста, то мы можем найти его. • Если регулярное выражение составное, то мы можем легко выяснить, какая часть регулярного выражения совпадает с какой частью текста. www.examclouds.com
  60. 60. Пример • Используются файлы file1.doc, file2.txt. А еще было бы неплохо обратить внимание на файл file3.img. Также просмотрите содержимое file4.doc. • Из строки нужно вырезать все имена файлов: • file1.doc, file2.txt, file3.img, file4.doc • Регулярное выражение: [a-zA-Z0-9]+.[a-z]{3} www.examclouds.com
  61. 61. Пример • Регулярное выражение "[a-z]+" соответствует всем строчным буквам в тексте. • [a-z] означает любой символ от a до z включительно, и + означает «один или более» символов. www.examclouds.com
  62. 62. Пример нахождения регулярного выражения в тексте import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo1 { public static void main(String[] args) { String stringPattern = "[a-z]+"; String text = "code 2 learn java tutorial"; Pattern pattern = Pattern.compile(stringPattern); Matcher matcher = pattern.matcher(text); while (matcher.find()) { System.out.println(text.substring(matcher.start(), matcher.end())); } } } www.examclouds.com
  63. 63. Pattern и Matcher классы • Pattern класс - объект класса составляет представление регулярного выражения. Класс Pattern не предусматривает никаких публичных конструкторов. Чтобы создать шаблон, необходимо сначала вызвать один из публичных статических методов, которые затем возвращают объект класса Pattern. Эти методы принимают регулярное выражение в качестве аргумента. • Matcher класс - объект «Искатель» является двигателем, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и Pattern класс, Matcher не имеет публичных конструкторов. Вы получаете объект Matcher вызовом метода matcher(), на объекте класса Pattern. www.examclouds.com
  64. 64. Методы класса Matcher • find() возвращает true, если шаблон совпадает с любой частью текста. • matches() возвращает true, если шаблон соответствует всей строке, иначе false. • lookingAt() возвращает true, если шаблон соответствует началу строки, и false в противном случае. www.examclouds.com
  65. 65. Примеры регулярных выражений a? - a один раз или ни разу a* - a ноль или более раз a+ - a один или более раз a{n} - a n раз a{n,}- a n или более раз a{n,m}- a от n до m www.examclouds.com
  66. 66. Основные метасимволы ^ - (крышка) начало проверяемой строки $ - (доллар) конец проверяемой строки . - (точка) представляет собой сокращенную форму записи для символьного класса, совпадающего с любым символом | - означает «или». Подвыражения, объединенные этим способом, называются альтернативами (alternatives) ? - (знак вопроса) означает, что предшествующий ему символ является необязательным + - обозначает «один или несколько экземпляров непосредственно предшествующего элемента * – любое количество экземпляров элемента (в том числе и нулевое) d – цифровой символ D – не цифровой символ s – пробельный символ S – не пробельный символ w – буквенный(латиница) или цифровой символ или знак подчёркивания W – любой символ, кроме буквенного или цифрового символа или знака подчёркивания [abc] - Диапазон символов или цифр www.examclouds.com
  67. 67. Пример нахождения регулярного выражения в тексте public class RegexDemo2 { public static void main(String[] args) { Pattern pattern = Pattern.compile("a*b"); Matcher matcher = pattern.matcher("aaab"); boolean b = matcher.matches(); System.out.println(b); } } www.examclouds.com
  68. 68. Задание Изменить регулярное выражение в предыдущем примере для нахождения строк cab, ccab, cccab. www.examclouds.com
  69. 69. Простой валидатор ссылки import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo3 { public static void main(String[] args) { System.out.println(test("google.com")); System.out.println(test("reference1.ua")); System.out.println(test("reference1.org")); } public static boolean test(String testString) { Pattern pattern = Pattern.compile(".+.(com|ua|ru)"); Matcher matcher = pattern.matcher(testString); return matcher.matches(); } } www.examclouds.com
  70. 70. Задание Изменить регулярное выражение в предыдущем примере – пусть reference1.org тоже считается ссылкой. www.examclouds.com
  71. 71. Поиск и выбор подстроки, заданной шаблоном import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo4 { public static void main(String[] args) { String regex = "(w{6,})@(w+.)([a-z]{2,4})"; String s = "адреса эл.почты:ivanov@gmail.com, sidorov@bsu.by!"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(s); while (matcher.find()) { System.out.println("e-mail: " + matcher.group()); } } } www.examclouds.com
  72. 72. Задание • Дана строка “Versions: Java 5, Java 6, Java 7, Java 8, Java 12”. • Найти все подстроки Java X и распечатать их. • Пример: Java 5 Java 6 Java 7 Java 8 Java 12 www.examclouds.com
  73. 73. Разбиение строки на подстроки с применением шаблона в качестве разделителя import java.util.Arrays; import java.util.regex.Pattern; public class RegexDemo5 { public static void main(String[] args) { Pattern pattern = Pattern.compile("d+s?"); String[] words = pattern.split("java5tiger 77 java6mustang"); System.out.print(Arrays.toString(words)); } } import java.util.Arrays; public class RegexDemo6 { public static void main(String[] args) { String str = "java5tiger 77 java6mustang"; String[] words = str.split("d+s?"); System.out.print(Arrays.toString(words)); } } Тоже самое, но с использованием класса String www.examclouds.com
  74. 74. Лекции, задания, видео, тесты и вопросы на:  https://www.examclouds.com/ru/java/java-core- russian/lesson12 Подписывайтесь на страницу:  https://www.facebook.com/Examclouds  Подписывайтесь на канал https://www.youtube.com/c/tatyanamilkina www.examclouds.com

×