1 / 15

Лекція 5. Робота з рядками

Лекція 5. Робота з рядками. План лекції: 1. Клас String 2. Створення String -об ’ єкту 3. Операції з String -об ’ єктами 4. Клас StringBuffer 5. Створення StringBuffer -об ’ єкту 6. Операції з StringBuffer -об ’ єктами 7. Аргументи командного рядка. Основні поняття про рядки.

pilar
Download Presentation

Лекція 5. Робота з рядками

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекція 5. Робота з рядками План лекції: 1. Клас String 2. СтворенняString-об’єкту 3. Операції з String-об’єктами 4. Клас StringBuffer 5. СтворенняStringBuffer-об’єкту 6. Операції з StringBuffer-об’єктами 7. Аргументи командного рядка

  2. Основні поняття про рядки Рядок в Java – об’єкт класу String (абоStringBuffer) Основні властивості: Існують методи для порівняння рядків, пошуку підрядка, об’єднання рядків і т.п. Існує декілька способів створення String-об’єктів Після створення String-об’єкту символи, що входять в рядок, не можна змінювати. Щоб змінити текстовий рядок, необхідно створити новий String-об’єкт. Для створення рядків, що можуть змінюватися, використовують клас StringBuffer. Класи StringтаStringBuffer визначені в java.lang, вони доступні всім програмам автоматично. Обидва класи визначені як final, тому втни не можуть мати підкласів.

  3. Створення String-об’єкту Клас Stringпідтримує декілька конструкторів 1. Створення пустого рядка String s=new String(); 2. Створення рядкана основі масиву char chars[]={‘a’,’b’,’c’}; String s=new String(chars); або так: char chars={‘a’,’b’,’c’,’d’,’e’,’f’}; String s=new String(chars,2,3); // s=“cde” 3. Копія об’єкта String s=new String(obj); // obj – об’єкт типу String індекс 1-го елемента довжина

  4. Створення String-об’єкту - приклади class MakeString{ public static void main(String args[]){ char c[]={'J','a','v','a'}; String s1=new String(c); String s2=new String(s1); System.out.println(s1); System.out.println(s2);} } Тип char в Java використовує 16 розрядів (символи Unicode). Для ініціалізації рядків 8-розрядними byte-масивами існує спеціальний конструктор: String(byte[], int, int) Запустити byte-масив (коди символів) class SubStringConstr{ public static void main(String args[]){ byte ascii[]={65,66,67,68,69,70}; String s1=new String(ascii); System.out.println(s1); String s2=new String(ascii,2,3); System.out.println(s2);} } індекс 1-го елемента довжина Запустити

  5. Операції зі String-об’єктами Визначення довжини рядка Метод length() char c[ ]={‘a’,’b’,’c’}; String s=new String(c); System.out.println(s.length()); Текстові літерали Для текстових літералів створюються об’єкти класуString String s=“abc”; System.out.println(“abc”.length()); Конкатенація (об’єднання) рядків В Java заборонено застосовувати оператори зі String-об’єктами, крім оператора “+” – об’єднання рядків String s1=“Івану Петренко ”+19+” років”; // “Івану Петренко 19 років” String s2=“чотири: ”+2+2; // “чотири: 22” Зверніть увагу!

  6. Метод toString() Для перетворення об’єктів в рядки використовується стандартний метод toString(). Метод toString()визначено в класі Object (загальнийсуперклас Java) ► Метод toString() викликається автоматично ► Метод toString()можна переозначати class Box{ double width, height, depth; Box(double w,doubleh,double d){ width=w; height=h; depth=d;} public String toString(){ return “Розміри: ”+width+”:”+height+”:”+depth;}} class toStringDemo{ public static void main(String args[]){ Box obj=new Box(10,20,30); String s=“Увага! ”+obj; System.out.println(s); System.out.println(obj);}} Зверніть увагу! Запустити Результат: Увага! Розміри: 10:20:30 Розміри: 10:20:30

  7. Методи для роботи з рядками - вилучення символів char charAt(int) void getChars(int, int, char[], int) індекс початку рядка індекс символу масив-результат byte[] getBytes() індекс в результуючому масиві, з якого починається заповнення індекс кінця рядка + 1 перетворення символів в байти char[] toCharArray() перетворення символів в String-об’єкті в масив class getCharsDemo{ public static void main(String args[]){ String s="Приклад текстового рядка – моваJava"; char buf[]=new char[9]; s.getChars(27,36,buf,0); System.out.println(buf); char symbol; symbol=s.charAt(32); System.out.println(symbol); byte nums[]=new byte[s.length()]; nums=s.getBytes(); for(inti=0;i<s.length();i++) System.out.println(nums[i]); char chars[]=new char[s.length()]; chars =s.toCharArray(); for(inti=0;i<s.length();i++) System.out.println(chars[i]);} } Запустити

  8. Порівняння рядків boolean equals(String) trueякщо однакові символи (з урахуванням регістру) в однаковому порядку, інакше - false String-об’єкт для порівняння booleanequalsIgnoreCase(String) те саме, що в методі equals(), але без врахування регістру String-об’єкт для порівняння class equalsDemo{ public static void main(String args[]){ String s1=“Hello”; String s2=new String(“Hello”); String s3=“Good-bye”; String s4=“HELLO”; System.out.println(s1+” дорівнює ”+s2+” --> ”+s1.equals(s2)); System.out.println(s1+” дорівнює ”+s3+” --> ”+s1.equals(s3)); System.out.println(s1+” дорівнює ”+s4+” --> ”+s1.equals(s4)); System.out.println(s1+” дорівнює ”+s4+” -->”+s1.equalsIgnoreCase(s4)); System.out.println(s1+” дорівнює ”+s2+” --> ”+(s1==s2)); }} Зверніть увагу! Запустити Зверніть увагу!

  9. Пошукпідрядків і символів • intindexOf(charабоString) пошук індексу першого • входження символу або • підрядка в рядок • intlastIndexOf(char абоString)пошук індексу останнього • входження символу або • підрядкав рядок • Другим аргументом може вказуватись початкова точка (індекс) пошуку. В першому випадку пошук виконується від точки початку пошуку до кінця рядка, у другому – від точки початку пошуку до початку рядка. Якщо співпадінь не знайдено, повертається -1 class indexOfDemo{ public static void main(String args[]){ String s=“Now is the time for all good men ”+ “to come to the aid of their country.”; System.out.println(s); System.out.println(“1: ”+s.indexOf(‘t’)); System.out.println(“2: ”+s.lastIndexOf(‘t’)); System.out.println(“3: ”+s.indexOf(“the”)); System.out.println(“4: ”+s.indexOf(‘t’,10)); System.out.println(“5: ”+s.indexOf(“the”,10));}} Запустити

  10. Зміна рядка Оскільки String-об’єкти незмінні, для зміни рядка треба або копіювати відповідний об’єкт в StringBuffer, або створювати нову копію рядка

  11. Зміна рядка - приклад class StringReplace{ public static void main(String args[]){ String str="Ми програмуємо на С++"; String s,s1,s2,s3,s4; s=str.substring(3,19); System.out.println(s); s1=str.concat(" та Java"); System.out.println(s1); s2=s1.replace(' ','_'); System.out.println(s2); s3=s1.toLowerCase(); System.out.println(s3); s4=s1.toUpperCase(); System.out.println(s4); } } Запустити Результат: програмуємо на С Ми програмуємо на С++ та Java Ми_програмуємо_на_С++_та_Java ми програмуємо на с++ та java МИ ПРОГРАМУЄМО НА С++ ТА JAVA

  12. Створення StringBuffer-об’єкту Клас StringBufferзабезпечує додаткові функціональні можливості для рядків 1. Відмінності між Stringта StringBuffer String – незмінні символьні послідовності фіксованої довжини StringBuffer– перезаписувані символьні послідовності В StringBufferможна вставляти символи і підрядки в середину і в кінець рядка. Це робиться за рахунок виділення додаткової пам’яті 2. Конструктор StringBuffer()резервується пам’ять для 16-ти додаткових символів StringBuffer(int) явно вказується розмір буферу StringBuffer(String)задається початкове значення і виділяється місце ще для 16-ти символів

  13. Методи для роботи з StringBuffer-об’єктами

  14. Методи для роботи з StringBuffer-об’єктами - приклад class StringBufferDemo{ public static void main(String args[]){ StringBufferstr=new StringBuffer("Ми програмуємо на С++"); System.out.println(str.length()); System.out.println(str.capacity()); str.insert(18,"Javaта "); System.out.println(str); str.replace(26,29,"Pascal"); System.out.println(str); str.reverse(); System.out.println(str); } } Запустити Результат: 21 37 Ми програмуємо на Java та С++ Ми програмуємо на Java та Pascal lacsaPат avaJаномєумаргорпиМ

  15. Аргументи командного рядка Аргументи командного рядка – інформація, яка вказується після імені програми Приклад: class CommandLine{ public static void main(String args[]){ for(inti=0;i<args.length;i++) System.out.println(“args[”+i+”]: ”+args[i]); }} Виклик: java CommandLineце текст до програми 100 та -1 Результат: args[0]: це args[1]: текст args[2]: до args[3]: програми args[4]: 100 args[5]: та args[6]: -1

More Related