Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛБ / java-lb1

.doc
Скачиваний:
63
Добавлен:
12.11.2016
Размер:
48.64 Кб
Скачать

1 РАБОТА СО СТРОКАМИ В JAVA

1.1 Цель работы

Ознакомление с методами обработки строковых данных на языке Java и составление автономных программ, выполняющих операции со строками.

1.2 Оpганизация самостоятельной работы

1.2.1 Строковые объекты в Java

В Java строки представляются двумя классами.

String. Предпочтителен для строковых констант

StringBuffer. Используется для строк, изменяющихся в программе

Работая с классом String, можно искать, сравнивать и объединять символы; однако нельзя вставить новые символы в строку или изменять длину строки.

2.2.2 Создание строк

Объект String может создаваться явно или неявно.

Пример неявного задания:

g.drawString ("This is a string", 50, 50);

Другой способ создать объект String— явно получить экземпляр класса String. Класс String имеет семь конструкторов. Самый очевидный пример:

String str = new String("This is a string");

Можно также объявить объект типа String и затем задать его значение в программе:

String str = "This is a string";

Для определения длины строки можно вызвать метод length():

int len = str.length();

Методы toLowerCase() и toUpperCase() переводят все буквы строки в верхний и нижний регистры.

Метод trim() удаляет все пробелы из начала и конца строки.

Метод concat(String str) добавляет строку str в конец данной строки.

Метод startsWith(String other) возвращает true, если начало строки совпадает со строкой other.

Метод startsWith(String other, int off) возвращает true, строка совпадает со строкой other, начиная с позиции off.

Mетод endsWith(String other) возвращает true, если конец строки совпадает со строкой other.

Метод indexOf(char ch) возвращает номер позиции первого вхождения символа ch в заданную строку. Если такая позиция не найдена, возвращается -1.

Метод indexOf(String str) возвращает номер позиции первого вхождения строки str в заданную строку. Если такая позиция не найдена, возвращается -1.

Метод indexOf(char ch, int ind) возвращает номер позиции, начиная с ind, первого вхождения в строку символа ch.

Метод indexOf(String str, int ind) возвращает номер позиции, начиная с ind, первого вхождения в строку подстроки str.

Для поиска символов в строке, начиная с конца, существуют аналогичные методы lastIndexOf ().

2.2.3 Сравнение строк

Существуют два способа сравнения строк:

вызов метода equals();

использование обычной операции сравнения.

Метод equals() возвращает значение true, когда строки равны, и значение false в противном случае. Например:

String str = "This is a string";

boolean result = str.equals ("Тhis is a string");

В этом случае булевская переменная result имеет значение true. Это можно осуществить при помощи операции сравнения:

if (str= = "This is a string") result = true;

Метод equalsIgnoreCase() сравнивает две строки без учета регистра.

Mетод соmраrеTо() возвращает значение мень­ше нуля, когда строковый объект меньше заданной строки, нулевое значе­ние, когда строки равны, и значение больше нуля, когда строковый объект больше заданной строки. Сравнение выполняется согласно алфавитному порядку (или в соответствии с ASCII-кодами символов).

Более сложным способом сравнения строк является метод regionMatches(), который позволяет сравнить часть одной строки с частью другой строки. Например:

String str = "THIS IS A STRING";

boolean result = str.regionMatches(10, "A STRING", 2, 6);

Метод regionMatches() имеет четыре параметра:

начальная позиция для просмотра исходной строки;

строка, с которой нужно сравнить исходную;

позиция в сравниваемой строке, с которой начинать просмотр;

количество сравниваемых символов.

2.2.4 Выделение строк

Для выделения части строки в классе String имеются несколько методов.

Метод charAt(int index) возвращает символ, находящийся в строке в позиции index.

Метод char[] toCharArray() преобразует строку в массив символов.

Метод getСhars(int beg, int end, char[] dst, int dstbeg) позволяет копировать символы строки с позиции beg до позиции end в массив dst, причем копируемые символы располагаются там, начиная с позиции dstbeg.

Метод substring (int beg) возвращает подстроку от позиции beg и до конца.

Метод substring (int beg, int end) возвращает подстроку между позициями beg и end-1.

Mетод replace() позволяет заменить символ в строке на другой символ.

String str2 = strl.replace('T', 'X');

Метод valueOf() конвертирует объект данных практически любого типа в строку. Преобразование целого числа в строку:

int v = 10;

String str = String.valueOf(v);

2.2.5 Использование класса StringBuffer

В отличие от класса String, представляющего строковые константы, класс StringBuffer позволяет создавать строковые объекты, которые можно ме­нять различным образом.

Пример создания объекта StringBuffer:

String str;

StringBuffer s=new StringBuffer(str);

Длину строки StringBuffer можно определить при помощи аналогичного метода length(). Для выделения символа используется аналогичный метод charAt(). Метод getChars() создает массив символов из объекта StringBuffer. Метод substring() выделяет из строки подстроку.

Длина строкового буфера устанавливается методом setLength():

s.setLength(40);

Символ в буфере строки можно заменить с помощью метода setCharAt():

s.setCharAt(3, 'X');

Символы в конец строки можно добавить при помощи метода append(). Например, метод append(int i) добавляет строковое представление целой константы в конец объекта StringBuffer.

Метод insert(int i, String str) позволяет вставить строку в объект StringBuffer с заданной позиции i.

Метод setCharAt(int i, char ch) устанавливает новое значение символа ch, находящегося в позиции i.

Метод delete(int start, int end) удаляет символы от позиции start до позиции end-1.

Метод deleteCharAt(int i) удаляет символ из позиции і.

Метод replace(int start, int end, String str) заменяет символы с позиции start до позиции end-1 на строку str.

Метод reverse() располагает содержимое объекта StringBuffer в обратном порядке.

Метод toString() преобразует буфер в объект класса String.

2.2.6 Методы класса-оболочки Character

Метод digit(char ch, int r) возвращает числовое значение символа ch, рассматриваемого в качестве цифры с основанием r. При недопустимом основании возвращается значение -1. Пример преобразования символа в число:

int j; char ch;

j=Character.digit(ch,10)

Метод forDigit(int d, int r) возвращает символ, представляющий цифру d с основанием r.

Метод isLetter(char ch) проверяет, является ли символ буквой и возвращает булевское значение.

Метод isDigit(char ch) проверяет, является ли символ цифрой и возвращает булевское значение.

Методы isLowerCase(char ch), isUpperCase(char ch) проверяют регистр символа.

Методы toLowerCase(char ch), toUpperCase(char ch) переводят символ в верхний или нижний регистр.

2.3 Описание лабораторной установки

Лабораторная работа выполняется в диалоговом режиме с использованием ПК. Оперативный обмен информацией с ПК осуществляется с помощью дисплея и пакета прикладных программ. Количество применяемых технических средств обеспечивает индивидуальный режим выполнения лабораторной работы.

2.4 Порядок выполнения и методические указания по выполнению работы

  1. Разработайте автономную программу согласно варианта задания.

2.5. Содержание отчета

В отчет необходимо включить:

цель лабораторной работы;

описание методов работы со строками в Java;

распечатку текста автономной программы и результатов ее работы;

выводы.

2.6. Контрольные вопросы и задания

  1. Какие классы Java поддерживают работу со строками?

  2. Как определяется длина строки?

  3. Как сравнить строки?

  4. Назовите методы, которые используются для поиска в строке и замены символов строки.

Соседние файлы в папке ЛБ