Поиск определенного символа или подстроки



Федеральное государственное бюджетное образовательное учреждение высшего образования

«Саратовский государственный технический университет имени Гагарина Ю.А.»

Кафедра «Прикладные информационные технологии»

ТЕХНОЛОГИИ ОБРАБОТКИ ИНФОРМАЦИИ

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

по курсу «Технологии обработки информации»

для студентов специальности 071900

«Информационные системы и технологии»»

 

Саратов 2018

Строки

Символьные строки применяются в большинстве программ - заголовки, имена, адреса, описания и т.д. Реализация строк на Java представлена тремя основными классами: String, StringBuffer, StringBuilder.

Класс String является стандартным классом, объектным представлением неизменяемого символьного массива. Класс содержит данные и методы для обработки этих данных. Последовательность символов строки является данными класса.

Классы StringBuffer, StringBuilder используются тогда, когда строку после создания требуется изменять.

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

Используя строковые литералы

Строковый литерал — последовательность символов, заключенных в двойные кавычки.

String s = "abc";

System.out.println(s); // Создали строку и вывели её значение "abc"

Или

System.out.println("abc"); // Создали строку и вывели её значение "abc"

С помощью конструкторов

Как и в случае любого другого класса, можно создавать объекты типа String с помощью оператора new. Для создания пустой строки используется конструктор без параметров:

String s = new String();

Создание строки из символьного или численного массива, переданных конструктору в качестве параметра.

char[] arrayOfChars = {'а', 'b', 'с'};

byte[] arrayOfBytes = {1, 9, 7};

 String s = new String(arrayOfChars);

System.out.println(s); // Этот фрагмент кода выводит строку "abc"

String s = new String(arrayOfBytes);

System.out.println(s); // Этот фрагмент кода выводит строку "197"

У этого конструктора может быть 3 параметра:

String(char[] arrayOfChars, int начальныйИндекс, int числоСимволов);

char[] arrayOfChars = { 'a', 'b', 'с', 'd', 'e', 'f' };

String s = new String(chars, 2, 3);

System.out.println(s); // Этот фрагмент выведет строку "cde"

Определение длины строки

Метод int length()

Возвращает длину строки.

String s = "abc";

System.out.println(s.length); // Этот фрагмент выведет число 3

System.out.println("abc".length()); // Этот фрагмент выведет число 3

Извлечение символов из строки

Извлечение одиночного символа из строки.

Char charAt(int index); 

Возвращает символ по указанному индексу.

String s = "abc";

char c = s.charAt(1); // Результат "b"

Извлечение нескольких символов из строки.

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin), где

SrcBegin - индекс первого символа в исходной строке, с которого начинается копирование

SrcEnd - индекс символа в исходной строке, до которого происходит копирование, не включая его

Dst - имя целевого массива, в который происходит копирование

DstBegin - индекс в массиве dst с которого начинается вставка скопированных символов

Копирует символы из заданной строки в целевой массив символов. В приведенном ниже фрагменте показано, как следует извлекать массив символов из объекта типа String.

public class getCharsDemo {

 public static void main(String args[]) {

String s = "This is a demo of the getChars method.";

int start = 10;

int end = 14;

char buf[] = new char[end - start];

s.getChars(start, end, buf, 0);

System.out.println(buf); // Результат копирования - строка "demo"

 }

}

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

Если требуется определить, одинаковы ли две строки, следует использовать метод equals.

Boolean equals(Object anObject)

Метод сравнивает данную строку с указанным объектом.

s1.equals(s2);

Другой метод сравнивает данную строку с указанной, игнорируя регистр символов.

Boolean equalsIgnoreCase(String anotherString)

s1.equalsIgnoreCase(s2);

Ниже приведен пример, иллюстрирующий использование обоих методов:

public class equalDemo {

 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));

 }

}

Результаты:

Hello equals Hello -> true

Hello equals Good-bye -> false

Hello equals HELLO -> false

Hello equalsIgnoreCase HELLO -> true

Поиск определенного символа или подстроки

В класс String включена поддержка поиска определенного символа или подстроки, реализованная в виде следующих методов:

Int indexOf(int ch);


Дата добавления: 2019-03-09; просмотров: 107; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!