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

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



Advertisements
Похожие презентации
1 Работа со строками в Java В языках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В этих ЯП при необходимости передается адрес.
Advertisements

Строки и классы-оболочки. Класс String. Конструкторы String s = new String(); char chars[] = { 'а', 'b', 'с' }; String s = new String(chars); char chars[]
JAVA, Кафедра ОСУ, АВТФ1 Работа со строками В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Класс.
Строки Класс String инкапсулирует действия со строками. Объект типа String – строка, состоящая из произвольного числа символов, от 0 до 2*10 9. Литерные.
Часть 1. Основы ООП Объекты и инкапсуляция..
СТРОКОВЫЙ ТИП ДАННЫХ Строка это последовательность символов. Каждый символ занимает 1 байт памяти ( код ASCII). Количество символов в строке называется.
Особенности Java. Блок static static { } Создание и уничтожение объектов new – создание объекта finalyze()
СИМВОЛЬНЫЕ СТРОКИ С++. ОБЪЯВЛЕНИЕ СИМВОЛЬНЫХ СТРОК В ПРОГРАММАХ В C++ символьные строки хранятся в массиве типа char, который заканчивается символом NULL.
Строки в С#. Отдельные символы, чаще всего, его называют типом Char. Строки постоянной длины, часто они представляются массивом символов Char[]. Строки.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Строки символов Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале.
Для добавления текста щелкните мышью Структурированные типы данных. Множества 11 класс.
Функции concat, copy, length, pos, upcase Стандартные функции для работы со строками.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Основы алгоритмизации и программирования Чабанюк Виктория 10 класс.
Обработка строк Строка- упорядоченная последовательность символов. Строковый тип данных- структурированный тип в Турбо-Паскале. Каждый символ.
Строки. Функции для работы со строками. Величины значением которых является последовательность символов называются текстовыми величинами или строками.
b5_java_s4
Символьные и Строковые величины. СИМВОЛЬНЫЕ И СТРОКОВЫЕ ВЕЛИЧИНЫ Для работы с символами, словами и предложениями в Паскале существуют типы данных – CHAR.
С ИМВОЛЬНЫЕ И С ТРОКОВЫЕ ВЕЛИЧИНЫ. О ГЛАВЛЕНИЕ Символьные и Строковые величины Сравнение переменных Сложение переменных Функция Concat Функция Concat.
Транксрипт:

СТРОКИ Работа со строками

Последовательность выполнения операторов int age = 45; String s = "Не is " + age + " years old."; age не String, а переменная типа int. Нужно быть внимательными при совместном использовании целых выражений и слияния строк, в противном случае результат может получиться совсем не тот, который вы ждали. Результат: Не is 45 years old.

String s = "four: " ; four: 22. Для того, чтобы первым выполнилось сложение целых чисел, нужно использовать скобки : String s = "four : " + (2 + 2);

Извлечение символов Для того, чтобы извлечь одиночный символ из строки, вы можете сослаться непосредственно на индекс символа в строке с помощью метода charAt. Если вы хотите в один прием извлечь несколько символов, можете воспользоваться методом getChars.

Извлечение массива символов из объекта типа String. 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 класса String. Альтернативная форма этого метода называется equalsIgnoreCase, при ее использовании различие регистров букв в сравнении не учитывается.

Пример : 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

Равенство Метод equals и оператор == выполняют две совершенно различных проверки. Если метод equal сравнивает символы внутри строк, то оператор == сравнивает две переменные ссылки на объекты и проверяет, указывают ли они на разные объекты или на один и тот же.

Пример : String s1 = "Hello"; String s2 = new String(s1); System.out.println(s1 + "equals"+s2+ " -> " + s1.equals(s2)); System.out.println(s1 + " == " + s2 + ", -> " + (s1 == s2));

Резльтат : Hello equals Hello -> true Hello == Hello -> false

indexOf и lastIndexOf В класс String включена поддержка поиска определенного символа, для этого в нем имеются два метода indexOf и lastIndexOf. Каждый из этих методов возвращает индекс того символа, который вы хотели найти. В любом случае, если поиск оказался неудачным методы возвращают значение -1.

Пример : String s = "Now is the time for all good men" + "to come to the aid of their country " + "and pay their due taxes."; System.out.println(s); System.out.println("indexOf(t) = " + s.indexOf(t)); System.out.println("lastlndexOf(t) = " + s.lastlndexOf(t));

System.out.println("indexOf(the) = " + s.indexOf("the")); System.out.println("lastlndexOf(the) = " + s.lastlndexOf("the")); System.out.println("indexOf(t, 10)="+ s.indexOf(t, 10)); System.out.println("lastlndexOf(t, 50) = " + s.lastlndexOf('f, 50)); System.out.println("indexOf(the, 10) = " + s.indexOf("the", 10)); System.out.println("lastlndexOf(the, 50) = " + s.lastlndexOf("the", 50));

Результат : Now is the time for all good men to come to the aid of their country and pay their due taxes. indexOf (t) = 7 lastlndexOf (t) = 87 indexOf (the) = 7 lastlndexOf (the) = 77 Index0f (t, 10) = 11 Lastlndex0f (t, 50) = 44 Index0f (the, 10) = 44

Модификация строк при копировании Поскольку объекты класса String нельзя изменять, всякий раз, когда вам захочется модифицировать строку, придется либо копировать ее в объект типа StringBuffer, либо использовать один из методов класса String, которые создают новую копию строки, внося в нее ваши изменения.

substring Вы можете извлечь подстроку из объекта String, используя метод substring. Этот метод создает новую копию символов из того диапазона индексов строки, который вы указали при вызове. Можно указать только индекс первого символа нужной подстроки тогда будут скопированы все символы, начиная с указанного и до конца строки.

Также можно указать и начальный, и конечный индексы при этом в новую строку будут скопированы все символы, начиная с первого указанного, и до (но не включая его) символа, заданного конечным индексом. "Hello World".substring(6) -> "World" "Hello World".substring(3,8) -> "lo Wo"

concat Слияние, или конкатенация строк выполняется с помощью метода concat. Этот метод создает новый объект String, копируя в него содержимое исходной строки и добавляя в ее конец строку, указанную в параметре метода. "Hello".concat(" World") -> "Hello World"

replace Методу replace в качестве параметров задаются два символа. Все символы, совпадающие с первым, заменяются в новой копии строки на второй символ. "Hello".replace('l', 'w') -> "Hewwo"

toLowerCase и toUpperCase Эта пара методов преобразует все символы исходной строки в нижний и верхний регистр, соответственно. "Hello".toLowerCase() -> "hello" "Hello".toUpperCase() -> "HELLO"

trim Mетод trim убирает из исходной строки все ведущие и замыкающие пробелы. Hello World.trim() -> "Hello World"

StringBuffer StringBuffer близнец класса String, предоставляющий многое из того, что обычно требуется при работе со строками. Объекты класса String представляют собой строки фиксированной длины, которые нельзя изменять. Объекты типа StringBuffer представляют собой последовательности символов, которые могут расширяться и модифицироваться

Текущую длину StringBuffer можно определить, вызвав метод length, а для определения всего места, зарезервированного под строку в объекте StringBuffer нужно воспользоваться методом capacity.

Пример : StringBuffer sb = new StringBuffer("Hello"); System.out.println("buffer = " + sb); System.out.println("length = " + sb.length()); System.out. println("capacity = " + sb.capacity()); Результат : buffer = Hello length = 5 capacity = 21

setLength Если вам вдруг понадобится в явном виде установить длину строки в буфере, воспользуйтесь методом setLength. Если вы зададите значение, большее чем длина содержащейся в объекте строки, этот метод заполнит конец новой, расширенной строки символами с кодом нуль.

charAt и setCharAt Одиночный символ может быть извлечен из объекта StringBuffer с помощью метода charAt. Другой метод setCharAt позволяет записать в заданную позицию строки нужный символ.

Пример : StringBuffer sb = new StringBuffer("Hello"); System.out.println("buffer before = " + sb); System.out.println("charAt(1) before = " + sb.charAt(1)); sb.setCharAt(1, 'i'); sb.setLength(2); System.out.println("buffer after = " + sb); System.out.println("charAt(1) after = " + sb.charAt(1));

Результат : buffer before = Hello charAt(1) before = e buffer after = Hi charAt(1) after = i