06.12.2013JAVA, Кафедра ОСУ, АВТФ1 Работа со строками В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Класс.

Презентация:



Advertisements
Похожие презентации
СТРОКИ Работа со строками. Последовательность выполнения операторов int age = 45; String s = "Не is " + age + " years old."; age не String, а переменная.
Advertisements

1 Работа со строками в Java В языках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В этих ЯП при необходимости передается адрес.
Строки и классы-оболочки. Класс String. Конструкторы String s = new String(); char chars[] = { 'а', 'b', 'с' }; String s = new String(chars); char chars[]
Строки Класс String инкапсулирует действия со строками. Объект типа String – строка, состоящая из произвольного числа символов, от 0 до 2*10 9. Литерные.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
СТРОКОВЫЙ ТИП ДАННЫХ Строка это последовательность символов. Каждый символ занимает 1 байт памяти ( код ASCII). Количество символов в строке называется.
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Символы и строки. Процедуры и функции работы со строками.
Чувашия, с.Моргауши, МБОУ "Моргаушская СОШ" - Павлинова Раиса Мефодьевна, г. Тема: Паскаль «строковые переменные». Обработка строк текста МБОУ.
Строки в С#. Отдельные символы, чаще всего, его называют типом Char. Строки постоянной длины, часто они представляются массивом символов Char[]. Строки.
Понятие строки. Операции со строковыми величинами. Стандартные процедуры и функции обработки строковых величин. Простые алгоритмы работы со строками на.
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
Строки, Списки, Кортежи.. Строки (string) Строка-это последовательность букв Для обозначения строки используются одинарные или двойные кавычки. Для длинных.
Символьные и Строковые величины. СИМВОЛЬНЫЕ И СТРОКОВЫЕ ВЕЛИЧИНЫ Для работы с символами, словами и предложениями в Паскале существуют типы данных – CHAR.
Кафедра ОСУ, Java 2004 Слайд 1 Наследование Наследование позволяет использовать существующий класс для определения новых классов, т.е. способствует.
«Обработка строковых данных» Delphi. Тема 7:7: «Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе.
Транксрипт:

JAVA, Кафедра ОСУ, АВТФ1 Работа со строками В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Класс String - объектное представление неизменяемого символьного массива (статические строки). Разработал к.т.н. Фофанов О.Б.

JAVA, Кафедра ОСУ, АВТФ2 Работа со строками В этом классе есть методы, которые позволяют сравнивать строки, осуществлять в них поиск и извлекать определенные символы и подстроки. Класс StringBuffer используется тогда, когда строку после создания требуется изменять (динамические строки).

JAVA, Кафедра ОСУ, АВТФ3 Работа со строками Можно создавать объекты типа String с помощью оператора new. Для создания пустой строки используется конструктор без параметров: 1. String s = new String(); 2. String str = new String("какая-то строка");

JAVA, Кафедра ОСУ, АВТФ4 Работа со строками 1.String() создается объект с пустой строкой; 2.String (String str) из одного объекта создается другой 3.String (StringBuffer str) преобразованная копия объекта класса BufferString; 4.String (byte[ ] byteArray) объект создается из массива байтов byteArray (ASCII); 5.String (char [ ] charArray) объект создается из массива charArray символов Unicode;

JAVA, Кафедра ОСУ, АВТФ5 Работа со строками 6.String (byte [ ] byteArray, int offset, int count) объект создается из части массива байтов byteArray, начинающейся с индекса offset и содержащей count байтов; 7.String (char [ ] charArray, int offset, int count) то же, но массив состоит из символов Unicode; 8.String(byte[ ] byteArray, String encoding) символы, записанные в массиве байтов, задаются в Unicode-строке, с учетом кодировки encoding; ( СР1251, СР866, KOI8, MacCyrillic и тд) winLikeWin = new String(bytearr, "Cp1251"); 6.String(byte[ ] byteArray, int offset, int count, String encoding) то же самое, но только для части массива.

JAVA, Кафедра ОСУ, АВТФ6 Работа со строками char chars[] = { 'a', 'b', 'с', 'd', 'e', 'f' }: String s = new String(chars,2,3); // s=cde

JAVA, Кафедра ОСУ, АВТФ7 Работа со строками char chars[] = { 'а', 'b', 'с' }; String s = new String (chars); // s= abc

JAVA, Кафедра ОСУ, АВТФ8 Работа со строками В Java включено несколько синтаксических дополнений, цель которыхпомочь программистам в выполнении операций со строками. В числе таких операций создание объектов типа String, слияние нескольких строк и преобразование других типов данных в символьное представление.

JAVA, Кафедра ОСУ, АВТФ9 Работа со строками String s = "abc";// упрощенный вариант Один из общих методов, используемых с объектами String метод length(), возвращающий число символов в строке String s = "abc"; System.out.println(s.length()); System.out.println("abc".length()); /* для каждой строки-литерала создается свой представитель класса String */

JAVA, Кафедра ОСУ, АВТФ10 Слияние строк String s = Не is + age + " years old."; //String s = new StringBuffer("He is "). // append(age); //s.append(" years old.").toString();

JAVA, Кафедра ОСУ, АВТФ11 Слияние строк По определению каждый объект класса String не может изменяться. Нельзя ни вставить новые символы в уже существующую строку, ни поменять в ней одни символы на другие. И добавить одну строку в конец другой тоже нельзя. Поэтому транслятор Java преобразует операции, выглядящие, как модификация объектов String, в операции с родственным классом StringBuffer.

JAVA, Кафедра ОСУ, АВТФ12 Извлечение символов Чтобы извлечь одиночный символ из строки, можно сослаться непосредственно на индекс символа в строке с помощью метода charAt : public char charAt(int index) Выбирает из строки символ с индексом index (символы индексируются от нуля). str="JAVA"; str = str + "C";//str="JAVAC"; char ch = str.charAt(2); //ch='V'

JAVA, Кафедра ОСУ, АВТФ13 Извлечение символов Если нужно извлечь несколько символов, можете воспользоваться методом getChars(int start, int end, char buf, int index) String s = "This is a demo of the getChars method."; int start = 10; int end = 14;

JAVA, Кафедра ОСУ, АВТФ14 Извлечение символов char buf[] = new char [endstart]; s.getChars(start, end, buf, 0); System.out.println(buf); // demo } }

JAVA, Кафедра ОСУ, АВТФ15 Сравнение метод equals() Логический метод equals (String str),, возвращает true, если аргумент str не равен null, и строка, содержащаяся в нем, полностью идентична строке,вызывающей этот метод вплоть до совпадения регистра букв. В остальных случаях возвращается значение false. метод equalsIgnoreCase()

JAVA, Кафедра ОСУ, АВТФ16 Сравнение String s1="Hello"; String s2="Hello"; String s3="Good-bye"; String s4="HELLO"; System.out.println(s1+"equals"+s2+ "-> +s1.equals(s2));

JAVA, Кафедра ОСУ, АВТФ17 Сравнение 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));

JAVA, Кафедра ОСУ, АВТФ18 Сравнение Hello equals Hello -> true Hello equals Good-bye -> false Hello equals HELLO -> false Hello equalsIgnoreCase HELLO -> true

JAVA, Кафедра ОСУ, АВТФ19 Сравнение Метод equals() и оператор == выполняют две совершенно различных проверки. Mетод equals сравнивает символы внутри строк Оператор == сравнивает две переменные- ссылки на объекты и проверяет, указывают ли они на разные объекты или на один и тот же.

JAVA, Кафедра ОСУ, АВТФ20 Сравнение String str1 = "string"; String str2 = "string"; System.out.println(str1==str2 ? "the same" : "not the same"); Ответ: "the same". Что означает, что ссылки на строки равны. Это сделано на уровне компилятора, очевидно, для экономии памяти. Компилятор создает ОДИН экземпляр строки, и присваивает str1 и str2 ссылку на этот экземпляр (ТОЛЬКО ДЛЯ ЛИТЕРАЛОВ-СТРОК)

JAVA, Кафедра ОСУ, АВТФ21 Сравнение Если скомпоновать строку из кусков, ссылка на нее будет другой. String str1 = "string"; String str2 = "str"; String str3 = "ing"; System.out.println(str1==(str2+str3) ? "the same" : "not the same");

JAVA, Кафедра ОСУ, АВТФ22 Сравнение String str1 = "string"; String str2 = new String("string"); System.out.println(str1==str2 ? "the same" : "not the same"); Результатом также будет "not the same".

JAVA, Кафедра ОСУ, АВТФ23 Сравнение class EqualsNotEqualTo { public static void main(String args[]) { String s1="Hello"; String s2=new String(s1); System.out.println(s1+"equals"+s2+ "->"+s1.equals(s2)); System.out.println(s1+"=="+s2+", ->"+(s1==s2)); } }

JAVA, Кафедра ОСУ, АВТФ24 Сравнение C:\> java EqualsNotEqualTo Hello equals Hello -> true Hello == Hello -> false

JAVA, Кафедра ОСУ, АВТФ25 Сравнение Метод compareTo (String str) возвращает целое число типа int, вычисленное по следующим правилам: Сравниваются символы данной строки this и строки str с одинаковым индексом, пока не встретятся различные символы с индексом, допустим k, или пока одна из строк не закончится. В первом случае возвращается значение this.charAt(k) - str.charAt(k), т. е. разность кодировок Unicode первых несовпадающих символов. Во втором случае возвращается значение this.length() - str.length(), т. е. разность длин строк. Если строки совпадают, возвращается 0.

JAVA, Кафедра ОСУ, АВТФ26 Сравнение если целое значение, возвращенное методом, отрицательно, то строка, с которой был вызван метод, меньше строки-параметра, если положительнобольше. если же метод compareTo вернул значение 0, строки идентичны.

JAVA, Кафедра ОСУ, АВТФ27 Сравнение 1. String w1 = "cat"; String w2 = "hat"; int comparison = w1.compareTo(w2); // comparison = -5

JAVA, Кафедра ОСУ, АВТФ28 Сравнение /** отсортированный в порядке возрастания список строк */ class SortString { static String arr[] = {Иванов, Ли,….,Ю }; public static void main(String args[]) {

JAVA, Кафедра ОСУ, АВТФ29 Сравнение for (int j = 0; j < arr.length; j++) { for (int i = j + 1; i < arr.length; i++) { if (arr[i].compareTo(arr[j]) < 0) { String t = arr[j]; arr[j] = arr[i]; arr[i] = t; } }// конец цикла i System.out.println(arr[j]); } // конец цикла j } }

JAVA, Кафедра ОСУ, АВТФ30 Сравнение Сравнивать можно не только целые строки, но и их отдельные части. метод regionMatches() в двух формах: в одной происходит точное сравнение символов, как в методе equals, а в другой сравнение без учета регистра, как в методе equalsIgnoreCase: 1.public boolean regionMatches(int start, String other, int ostart, int olen)

JAVA, Кафедра ОСУ, АВТФ31 Сравнение 2. public boolean regionMatches(boolean ignoreCase, int start, String other, int ostart, int olen)

JAVA, Кафедра ОСУ, АВТФ32 Сравнение String str = "Look, look!"; boolean b1, b2, b3; b1 = str.regionMatches(6, "Look", 0, 4); b2 = str.regionMatches(true, 6,"Look,0, 4); b3 = str.regionMatches(true, 6,"Look ", 0, 5);

JAVA, Кафедра ОСУ, АВТФ33 Сравнение public boolean startsWith (String prefix, int offset) Возвращает true, если строка начинается с подстроки prefix (со смещением offset). public boolean startsWith(String prefix) Сокращение для startsWith(prefix, 0). public boolean endsWith(String suffix) Возвращает true, если строка заканчивается подстрокой suffix.

JAVA, Кафедра ОСУ, АВТФ34 Поиск В класс String включена поддержка поиска определенного символа или подстроки, для этого в нем имеются два метода indexOf(str) и lastIndexOf(str). Каждый из этих методов возвращает индекс того искомого символа, либо индекс начала искомой подстроки. В любом случае, если поиск оказался неудачным методы возвращают значение -1. int i = раскраска ".indexOf ("рас"); int i = "Раскраска ".lastIndexOf ("рас")

JAVA, Кафедра ОСУ, АВТФ35 Модификация объекты класса String нельзя изменять, всякий раз, когда модифицируется строка, 1. нужно копировать ее в объект типа StringBuffer, 2. использовать один из методов класса String, которые создают новую копию строки, внося в нее изменения.

JAVA, Кафедра ОСУ, АВТФ36 Модификация substring(int p) метод создает новую копию символов из того диапазона индексов оригинальной строки, который указан при вызове. Можно указать только индекс первого символа нужной подстрокитогда будут скопированы все символы, начиная с указанного и до конца строки

JAVA, Кафедра ОСУ, АВТФ37 Модификация можно указать и начальный, и конечный индексыпри этом в новую строку будут скопированы все символы, начиная с первого указанного, и до (но не включая его) символа, заданного конечным индексом. s = "Hello World".substring(6); // "World" s1 = "Hello World".substring(3,8); //"lo Wo"

JAVA, Кафедра ОСУ, АВТФ38 Модификация concat () Слияние, или конкатенация строк выполняется с помощью метода concat. Этот метод создает новый объект String, копируя в него содержимое исходной строки и добавляя в ее конец строку, указанную в параметре метода. str5 = Guten Tag".concat( Welt"); // " Guten Tag Welt "

JAVA, Кафедра ОСУ, АВТФ39 Модификация replace (char old, char new) Методу replace в качестве параметров задаются два символа. Все символы, совпадающие с первым, заменяются в новой копии строки на второй символ. s1 = "Hello".replace('l', 'w'); // "Hewwo"

JAVA, Кафедра ОСУ, АВТФ40 Модификация toLowerCase() и toUpperCase() Эта пара методов преобразует все символы исходной строки в нижний и верхний регистр, соответственно. st = "Hello".toLowerCase();// "hello" s2 = "Hello".toUpperCase();// "HELLO"

JAVA, Кафедра ОСУ, АВТФ41 Модификация trim() метод trim () убирает из исходной строки все ведущие и замыкающие пробелы. s= Hello World ".trim(); //"Hello World valueOf () преобразование любого значения в текстовую строку Такой статический метод определен для любого существующего в Java типа данных

JAVA, Кафедра ОСУ, АВТФ42 Модификация может преобразовывать типы: boolean, byte, short, int, long, float, double и тип Object Например: boolean bTmp = true; String s = String.valueOf (bTmp);

JAVA, Кафедра ОСУ, АВТФ43 Модификация Кроме того, в каждом классе есть метод toString (), переопределенный или просто унаследованный от класса Object. Он преобразует объекты класса в строку. Фактически, метод valueOf() вызывает метод toString() соответствующего класса. Поэтому результат преобразования зависит от того, как реализован метод toString ().

JAVA, Кафедра ОСУ, АВТФ44 Модификация Обратное преобразование, из строки Метод parse () класса-оболочки этого типа, где вместо будет имя типа. byte b = Byte.parseByte("10"); short shrt = Short.parseShort("1234"); long lng = Long.parseLong(" "); float flt = Float.parseFloat("1.123"); double dbl = Double.parseDouble("1.123"); int i = Integer.parseInt("10");

JAVA, Кафедра ОСУ, АВТФ45 Класс StringBuffer Объекты типа StringBuffer представляют собой последовательности символов, которые могут расширяться и модифицироваться

JAVA, Кафедра ОСУ, АВТФ46 Класс StringBuffer Создать объект класса StringBuffer можно только конструкторами. Конструкторы В классе StringBuffer три конструктора: StringBuffer () создает пустой объект с емкостью 16 символов; StringBuffer (int capacity) создает пустой объект заданной емкости capacity ; StringBuffer (String str) создает объект емкостью str.length () + 16, содержащий строку str.

JAVA, Кафедра ОСУ, АВТФ47 Класс StringBuffer Текущую длину StringBuffer можно определить, вызвав метод length () Для определения всего места, зарезервированного под строку в объекте StringBuffer нужно воспользоваться методом capacity()

JAVA, Кафедра ОСУ, АВТФ48 Класс StringBuffer …… StringBuffer sb = new StringBuffer("Hello"); int l = sb.length() ; int c = sb.capacity() ; // l=5 c =21

JAVA, Кафедра ОСУ, АВТФ49 Методы StringBuffer ensureCapacity () Если нужно после создания объекта StringBuffer зарезервировать в нем место для определенного количества символов, можно для установки размера строки воспользоваться методом ensureCapacity (). Это бывает полезно, когда заранее известно, что придется добавлять к буферу много небольших строк. buf.ensureCapacity(buf.length() + now.length() + 2);

JAVA, Кафедра ОСУ, АВТФ50 Методы StringBuffer setLength() Если нужно в явном виде установить длину строки в буфере, можно использовать метод setLength(). Если задать значение, большее чем длина содержащейся в объекте строки, этот метод заполнит конец новой, расширенной строки символами с кодом ноль.

JAVA, Кафедра ОСУ, АВТФ51 Методы StringBuffer charAt () и setCharAt (replace) Одиночный символ может быть извлечен из объекта StringBuffer с помощью метода charAt(). Метод setCharAt () позволяет записать в заданную позицию строки нужный символ

JAVA, Кафедра ОСУ, АВТФ52 Методы StringBuffer sb.setCharAt(1, 'i'); sb.setLength(2); System.out.println( sb.charAt(1));

JAVA, Кафедра ОСУ, АВТФ53 Методы StringBuffer append() Метод append класса StringBuffer обычно вызывается неявно при использовании оператора + в выражениях со строками. Для каждого параметра вызывается метод String.valueOf() и его результат добавляется к текущему объекту StringBuffer.

JAVA, Кафедра ОСУ, АВТФ54 Методы StringBuffer Основной метод append (String str) присоединяет строку str в конец данной строки. Если ссылка str == null, то добавляется строка "null".

JAVA, Кафедра ОСУ, АВТФ55 Методы StringBuffer Шесть методов append (type elem) добавляют примитивные типы boolean, char, int, long, float, double, преобразованные в строку.

JAVA, Кафедра ОСУ, АВТФ56 Методы StringBuffer Два метода присоединяют к строке массив chars и подмассив sub символов, преобразованные в строку: append (char [] chars) append (char [] sub, int offset, int len).

JAVA, Кафедра ОСУ, АВТФ57 Методы StringBuffer Десятый метод добавляет просто объект append (Object obj). Перед этим объект obj преобразуется в строку своим методом toString ().

JAVA, Кафедра ОСУ, АВТФ58 Методы StringBuffer При каждом вызове метод append() возвращает ссылку на объект StringBuffer, с которым он был вызван. Это позволяет выстраивать в цепочку последовательные вызовы метода

JAVA, Кафедра ОСУ, АВТФ59 Методы StringBuffer String s; int a = 42; StringBuffer sb = new StringBuffer(40); s = sb.append("a = ").append(a). append("!").toString();

JAVA, Кафедра ОСУ, АВТФ60 Методы StringBuffer С:\> Java appendDemo а = 42!

JAVA, Кафедра ОСУ, АВТФ61 Методы StringBuffer insert ( int ind, String str) Метод insert идентичен методу append в том смысле, что для каждого возможного типа данных существует своя совмещенная версия этого метода вставляет их в определенное место в строке, задаваемое первым его параметром.

JAVA, Кафедра ОСУ, АВТФ62 Методы StringBuffer StringBuffer sb = new StringBuffer("hello world !"); sb.insert(6,"there ");

JAVA, Кафедра ОСУ, АВТФ63 Методы StringBuffer Метод delete (int begin, int end) удаляет из строки символы, начиная с индекса begin включительно до индекса end исключительно, если end больше длины строки, то до конца строки.

JAVA, Кафедра ОСУ, АВТФ64 Методы StringBuffer StringBuffer s = new StringBuffer("Это небольшая строка"); s.delete(4, 6).toString(); //s == "Это большая строка". Если begin отрицательно, больше длины строки или больше end, возникает исключительная ситуация. Если begin == end, удаление не происходит.

JAVA, Кафедра ОСУ, АВТФ65 Методы StringBuffer Метод deleteCharAt (int ind) удаляет символ с указанным индексом ind. Длина строки уменьшается на единицу. Если индекс ind отрицателен или больше длины строки, возникает исключительная ситуация.

JAVA, Кафедра ОСУ, АВТФ66 Методы StringBuffer В StringBuffer в ранних версиях не существовало методов, которые бы удаляли часть содержимого строки, в этом случае придется преобразовать строку в символьный массив, удалить то, что нужно, построить новую строку по массиву с оставшимися символами.

JAVA, Кафедра ОСУ, АВТФ67 Методы StringBuffer следует воспользоваться методом getChars(), который аналогичен методу String. getChars(). public void getChars (int srcBegin, int srcEnd, char[ ] dst, int dstBegin); Копирует символы из заданной части буферной строки (определяемой позициями srcBegin и srcEnd) в массив dst начиная с dst [dstBegin]

JAVA, Кафедра ОСУ, АВТФ68 Методы StringBuffer public static StringBuffer remove (StringBuffer buf, int pos, int cnt) { if (pos buf.length ( ) ) throw new IndexOutOfBoundsException( ); int leftover = buf.length()-(pos + cnt); if (leftover ==0) {/* простое усечение строки*/ buf.set.length(pos) ; return buf; } Число элементов, находящихся после удаляемой части строки

JAVA, Кафедра ОСУ, АВТФ69 Методы StringBuffer char [] chrs = new char [leftover] ; buf.getChars (pos+cnt, buf.length( ), chrs, 0) ; buf.setLength(pos) ;//обрезаем строку buf.append ( chrs ) ;//добавляем //выделенный ранее остаток строки return buf ; }

JAVA, Кафедра ОСУ, АВТФ70 Методы StringBuffer Метод replace (int begin, int end, String str ) удаляет символы из строки, начиная с индекса begin включительно до индекса end исключительно, если end больше длины строки, то до конца строки, и вставляет вместо них строку str.

JAVA, Кафедра ОСУ, АВТФ71 Методы StringBuffer Метод reverse() меняет порядок расположения символов в строке на обратный порядок. Например, StringBuffer s = new StringBuffer("Это небольшая строка"); s.reverse().toString(); получим s == "акортс яашьлобен отЭ".

JAVA, Кафедра ОСУ, АВТФ72 Синтаксический разбор строки В пакет java.util входит простой класс StringTokenizer, облегчающий разбор строк. Класс StringTokenizer из пакета java.util содержит три конструктора и шесть методов

JAVA, Кафедра ОСУ, АВТФ73 Синтаксический разбор строки Первый конструктор StringTokenizer (String str) создает объект, готовый разбить строку str на слова, разделенные пробелами, символами табуляций '\t', перевода строки '\n' и возврата каретки '\r'. Разделители не включаются в число слов.

JAVA, Кафедра ОСУ, АВТФ74 Синтаксический разбор строки Второй конструктор StringTokenizer (String str, String delimeters) задает разделители вторым параметром deiimeters, например: StringTokenizer("Казнить,нельзя:пробело в-нет", " \t\n\r,:-"); Порядок расположения разделителей в строке deiimeters не имеет значения. Разделители не включаются в число слов.

JAVA, Кафедра ОСУ, АВТФ75 Синтаксический разбор строки Третий конструктор позволяет включить разделители в число слов: StringTokenizer (String str, String delimeters, boolean flag); Если параметр flag равен true, то разделители включаются в число слов, если false нет. Например: StringTokenizer ("а - (b + с) / b * с", " \t\n\r+*-/(), true);

JAVA, Кафедра ОСУ, АВТФ76 Синтаксический разбор строки В разборе строки на слова активно участвуют два метода: метод nextToken () возвращает в виде строки следующее слово; логический метод hasMoreTokens () возвращает true, если в строке еще есть слова, и false, если слов больше нет

JAVA, Кафедра ОСУ, АВТФ77 Синтаксический разбор строки Метод countTokens () возвращает число оставшихся слов

JAVA, Кафедра ОСУ, АВТФ78 Синтаксический разбор строки Четвертый метод nextToken(String newDelimeters) позволяет "на ходу" менять разделители. Следующее слово будет выделено по новым разделителям newDeiimeters; новые разделители действуют далее вместо старых разделителей, определенных в конструкторе или предыдущем методе nextToken ().

JAVA, Кафедра ОСУ, АВТФ79 Синтаксический разбор строки Пример: Разбиение строки на слова : String s = "Строка, которую мы хотим разобрать на слова"; StringTokenizer st = new StringTokenizer(s, " \t\n\r,."); while(st.hasMoreTokens()){ // Получаем слово и что-нибудь делаем с ним, //например, // просто выводим на экран System.out.println(st.nextToken()) ; }

JAVA, Кафедра ОСУ, АВТФ80 Синтаксический разбор строки Пример:

JAVA, Кафедра ОСУ, АВТФ81 Синтаксический разбор строки Пример:

JAVA, Кафедра ОСУ, АВТФ82 Синтаксический разбор строки Пример:

JAVA, Кафедра ОСУ, АВТФ83 Синтаксический разбор строки Полученные слова обычно заносятся в какой-нибудь класс-коллекцию: Vector, Stack или другой, наиболее подходящий для дальнейшей обработки текста контейнер.