Строки и классы-оболочки. Класс String. Конструкторы String s = new String(); char chars[] = { 'а', 'b', 'с' }; String s = new String(chars); char chars[]

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



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

1 Работа со строками в Java В языках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В этих ЯП при необходимости передается адрес.
Строки Класс String инкапсулирует действия со строками. Объект типа String – строка, состоящая из произвольного числа символов, от 0 до 2*10 9. Литерные.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
JAVA, Кафедра ОСУ, АВТФ1 Работа со строками В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Класс.
Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
Строки в С#. Отдельные символы, чаще всего, его называют типом Char. Строки постоянной длины, часто они представляются массивом символов Char[]. Строки.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Язык Java. JSP.. Java. Синтаксис. Перевод строчки эквивалентен пробелу Регистр в именах различается // Комментарии до конца строки /* Многострочные комментарии.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Классы Math, system, Data на языке Java Назарова К
Лекция 7 Классы - оболочки Каждому простому типу в Java соответствует класс-оболочка. Классы-оболочки выполняют две основные функции. Первая состоит в.
Особенности Java. Блок static static { } Создание и уничтожение объектов new – создание объекта finalyze()
1 Java 7. ОБРАБОТКА СТРОК. 2 Строка в языке Java Строка в языке Java – (основной носитель текстовой информации) НЕ МАССИВ символов типа char, А ОБЪЕКТ.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Изучение динамического определения типов. Класс Class. Динамическая загрузка и инстанцирование классов. В Java вся информация о классе хранится в специальном.
Символы и строки. Процедуры и функции работы со строками.
b5_java_s4
Часть 1. Основы ООП Объекты и инкапсуляция..
Транксрипт:

Строки и классы-оболочки

Класс String. Конструкторы String s = new String(); char chars[] = { 'а', 'b', 'с' }; String s = new String(chars); char chars[] = { 'a', 'b', 'с', 'd', 'e', 'f' }; String s = new String(chars,2,3); String s = "abc";

Методы Object Методы класса String equals Сравнение двух строк. equalsIgnoreCase Сравнение двух строк без учета регистра. compareTo Посимвольное сравнение строк. Возвращает 0 если строки равны. indexOf и lastIndexOf Поиск символа или подстроки символов (первое вхождение с начала или с конца). Если не найдено -1. substring(int) substring(int, int) Извлечь подстроку с указанной позиции. concat Слияние строк. replace Замена символа. toLowerCase toUpperCase Преобразует все символы исходной строки в нижний и верхний регистр. trim Убирает из исходной строки все ведущие и замыкающие пробелы. valueOf Преобразование числового значения в текстовую строку. byte[] getBytes byte[] getBytes( String encoding) Возвращает последовательность байтов в кодировке по умолчанию Возвращает последовательность байтов в указанной кодировке encoding

class SortString { static String arr[] = {"Now", "is", "the", "time", "for", "all", "good", "men", "to", "come", "to", "the", "aid", "of", "their", "country" }; public static void main(String args[]) { for (int j = 0; i < 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; } System.out.println(arr[j]); } 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 " + "and pay their due taxes."; System.out.println(s); System.out.println("indexOf(f) = " + s.indexOf('f')); System.out.println("lastIndexOf(f) = " + s.lastIndexOf('f')); System.out.println("indexOf(the) = " + s.indexOf("the")); }} "Hello World".substring(6) // "World" "Hello World".substring(3,8) // "lo Wo" "Hello".concat(" World") // "Hello World" "Hello".replace('l', 'w') // "Hewwo" "Hello".toLowerCase() //"hello" "Hello".toUpperCase() // "HELLO" "Hello World ".trim() // "Hello World" } Примеры применения методов класса String

Класс StringBuffer. Конструкторы StringBuffer() – создает пустой StringBuffer (16 символов); StringBuffer(String s) – буфер заполняется указанным значением s; StringBuffer(int capacity) – создает экземпляр класса StringBuffer с указанным размером (длина char[]).

Методы класса StringBuffer append(String str) добавляет переданную строку str в буфер. insert(int offset, String str) вставка строки, начиная с позиции offset. ensureCapacity установки размера буфера. setLength установить длину строки в буфере. charAt setCharAt извлечь cимвол записать в заданную позицию строки нужный символ.

class StringBufferDemo { public static void main(String args[]) { StringBuffer sb = new StringBuffer("Hello"); System.out.println("buffer = " + sb); System.out.println("length = " + sb.length()); System.out. println("capacity = " + sb.capacity()); } class setCharAtDemo { public static void main(String args[]) { 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)); } Примеры применения методов класса StringBuffer buffer = Hello length = 5 capacity = 21 buffer before = Hello charAt(1) before = e buffer after = Hi charAt(1) after = i class appendDemo { public static void main(String args[]) { String s; int a = 42; StringBuffer sb = new StringBuffer(40); s = sb.append("a = ").append(a).append("!").toString(); System.out.println(s); }

StringTokenizer Класс StringTokenizer предназначен для разбиения текста на последовательность лексем - слов (tokens). Конструктор StringTokenizer (String str, String delemiters); Реализует интерфейс Enumeration import java.util.StringTokenizer; class STDemo { static String in = "title=The Java Handbook:" + "author=Patrick Naughton:" + "isbn= :" + "ean= :" + corn"; public static void main(String args[]) { StringTokenizer st = new StringTokenizer(in, "=:"); while (st.hasMoreTokens()) {//есть еще лексемы String key = st.nextToken(); // получить следующую String val = st.nextToken(); System.out.println(key + "\t" + val); } } } title The Java Handbook author Patrick Naughton isbn ean corn

Классы-обертки Object NumberBigDecimal BooleanBigInteger CharacterByte ClassDouble Float Integer Long Short Character.SubSetInputSubSet Character.UnicodeBlock

Классы-обертки Классы являются неизменяемыми (если необходим объект, хранящий другое значение, его нужно создать заново), к тому же имеют атрибут final – от них нельзя наследовать класс. Все классы-обертки (кроме Void) реализуют интерфейс Serializable, поэтому объекты любого (кроме Void) класса- обертки могут быть сериализованы. Все классы-обертки содержат статическое поле TYPE, ссылающееся на объект Class, соответствующий примитивному оборачиваемому типу. Все классы-обертки реализуют интерфейс Comparable. Все классы-обертки числовых типов имеют метод equals(Object), сравнивающий примитивные значения объектов.

Классы-обертки Классы-обертки числовых типов Byte, Short, Integer, Long, Float, Double наследуются от одного класса – Number. В нем объявлены методы, возвращающие числовое значение во всех числовых форматах Java (byte, short, int, long, float и double). Класс-обертка Примитивный тип Bytebyte Shortshort Characterchar Integerint Longlong Floatfloat Doubledouble Booleanboolean

Integer Конструкторы для создания экземпляров класса Integer: Integer(String s) – конструктор, принимающий строку, представляющую числовое значение. Integer(int i) – конструктор, принимающий числовое значение. Cтатические методы: public static int parseInt(String s) – преобразует строку в int; public static int parseInt(String s, int radix) – преобразует строку, представляющую запись целого числа в системе счисления radix, в int. public static Integer valueOf(String s) public static Integer valueOf(String s, int radix) public static String toString(int i) – используется для преобразования значения типа int в строку. public static String toOctalString(int i) – восьмеричное; public static String toBinaryString(int i) – двоичное; public static String toHexString(int i) – шестнадцатеричное. Имеется также две статические константы: Integer.MIN_VALUE – минимальное int значение; Integer.MAX_VALUE – максимальное int значение. public int intValue() возвращает значение примитивного типа для данного объекта Integer.

Пример public static void main(String[] args) { int i = 1; byte b = 1; String value = "1000"; Integer iObj = new Integer(i); Byte bObj = new Byte(b); System.out.println("while i==b is " + (i==b)); //true System.out.println("iObj.equals(bObj) is " + iObj.equals(bObj)); //false Long lObj = new Long(value); System.out.println("lObj = " + lObj.toString()); //1000 Long sum = new Long(lObj.longValue() + iObj.byteValue() + bObj.shortValue()); System.out.println("The sum = " + sum.doubleValue()); // }

Character Реализует интерфейсы Comparable и Serializable. Конструктор Character(char) Методы: public char charValue() – возвращает обернутое значение char; public int compareTo(Character anotherCharacter) – сравнивает обернутые значения char как числа, возвращает значение return this.value – anotherCharacter.value. public int compareTo(Object o) – если переданный объект имеет тип Character, результат будет аналогичен вызову compareTo((Character)o), иначе будет брошено исключение ClassCastException, так как Character можно сравнивать только с Character.

Итог каждый примитивный тип имеет соответствующий класс-обертку; все классы-обертки могут быть сконструированы как с использованием примитивных типов, так и с использованием String, за исключением Character, который может быть сконструирован только по char; классы-обертки могут сравниваться с использованием метода equals(); примитивные типы могут быть извлечены из классов-оберток с помощью соответствующего метода xxxxValue() (например intValue()); классы-обертки также являются классами-утилитами, т.е. предоставляют набор статических методов для работы с примитивными типами; классы-обертки являются неизменяемыми.

Класс Math public static final double Math.PI – задает число π ("пи"); public static final double Math.E – основание натурального логарифма.