Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

Класс String

Создать строку текста класса Stringможно оператором присваивания:

String text=”Это текстовая строка”;

При этом создается объектная переменная (ссылка) textна объект с текстом. Если изменить этот текст:

String text=”Это новая текстовая строка”;

То создается новыйобъект с новым текстом, на который сейчас будет указывать ссылкаtext. Старый объект со старым текстом остается в памяти компьютера до “уборки мусора”. При этом создается полная иллюзия того, что мы работаем с одной и той же строкой.

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

  1. создание пустойстроки:

String text=new String();

создана пустая строка text;

  1. создание копииобъекта-строки:

String text=”Это текстовая строка”;

String newText=new String(text);

создан новый объект-строка newTextс таким же содержанием, как и объектtext;

  1. создание новой строки на основе символьного массива:

char symbols[]={‘J’, ‘a’, ‘v’, ‘a’};

String text=new String(symbols);

создан новый объект-строка textс содержаниемJava”,

  1. создание новой строки на основе массива байтов:

byte nums[]={65, 66, 67, 68};

String text=new String(nums);

создан новый объект-строка textс содержаниемABCD(используютсяASCII-коды символов). Такая ситуация возникает при чтенииASCII-файлов, извлечении информации из базы данных или при передаче информации по сети. Если исходный кириллическийASCII-файл (ASCII-текст) был в кодировкеCP-1251 (windows 1251), тоJAVA-строка будет создана правильно.

Методы для работы со строками класса String

В классе Stringсобрано много методов для работы со строками. Вот некоторые из них:

    1. определение длиныстроки:

String str=”Это текстовая строка”;

int n=str.length(); // n=20

    1. определение пустойстроки:

String str=””;

boolean value=str.isEmpty(); // value=true – строка пустая

    1. определение символав строке по его индексу:

String str=”Это текстовая строка”;

char ch=str.charAt(5); // ch=’е’ – нумерация начинается с нуля!

    1. преобразованиестроки в массивсимволов (ASCII-кодировка):

String str=”Это строка”;

char chArray[]=str.toCharArray();

создан массив символов chArray[] с содержанием{‘Э’,‘т’,‘о’,‘ ’,‘с’,‘т’, ‘р’,‘о’,‘к’,‘а’};

    1. преобразованиестроки в массивбайтовпо ASCII-кодировке:

String str=”ABCDE”;

byte byteArray[]=str.getBytes();

создан массив байтов byteArray[] с содержанием{65, 66, 67, 68, 69};

  1. сравнениедвух строкс учетом регистра:

String str_1=”Даша”;

String str_2=”даша”;

boolean result=str_1.equals(str_2); // result=true, т.к. Даша>даша

строки сравниваются посимвольно (по ASCII-кодам) слева направо до первого несовпадения,

  1. сравнениедвух строк безучета регистра:

String str_1=”Вася Пупкин”;

String str_2=”ВАСЯ ПУПКИН”;

boolean result=str_1.equalsIgnoreCase(str_2); // result=true

Внимание!Для сравнения строкнельзяиспользовать операции==и!=.

  1. поисксимволов и подстрок в строке сначаластроки:

String str=”Наша Маша шагает в шапке”;

char chr=’а’;

int result=str.indexOf(chr); // result=1 (нумерация символов // начинается с нуля)

String str_1=”ша”;

result=str.indexOf(str_1); // result=2 – первоеша

// начинается со второго символа

если подстрока не найдена, то результат поиска равен-1,

  1. поисксимволов и подстрок в строке сконцастроки:

String str=”Наша Маша шагает в шапке”;

char chr=’а’;

int result=str.lastIndexOf(chr); // result=20 (нумерация символов // начинается с нуля)

String str_1=”ша”;

result=str.lastIndexOf(str_1); // result=19

если в исходной строке имеются ESC-последовательности (\n) , то каждая из них считаетсяоднимсимволом;

  1. выделениеподстроки из исходной строки:

String str=”Мы программируем на Java”;

String s=str.subString(3, 16); // s=программируем

задается индекс начальногосимвола (3) и индекс символа, который ужене будет входитьв подстроку (16),

  1. заменаодного символа в строке другим:

String str=”Мы программируем на Java”;

String s=str.replace(‘ ‘, ‘_’); // заменяем все пробелы // на символы подчеркивания

  1. заменаодной подстроки на другую:

String str=”Наша Маша шагает в шапке”;

String s=str.replaceAll(“ша”, “ся”); // заменяем все вхождения // “ша” на “ся”

если заменяемая подстрока не найдена, то возвращается ссылка на исходную строку; регистр букв при заменеучитывается,

String str=”Наша Маша шагает в шапке”;

String s=str.replaceFirst(“ша”, “ся”); // заменяем первое вхождение // “ша” на “ся”

  1. удалениеначальных и конечных пробелов в строке:

String str=” Мы программируем на Java ”;

String s=str.trim(); // строка s без начальных // и конечных пробелов

  1. переводвсех букв в строке внижнийрегистр (строчныебуквы):

String str=”Маша и Даша”;

String s=str.toLowerCase(); // s=”маша и даша

  1. переводвсех букв в строке вверхнийрегистр (прописныебуквы):

String str=”Маша и Даша”;

String s=str.toUpperCase(); // s=”МАША И ДАША

  1. разбиение строки на подстроки (создание массива подстрок):

String str=”Маша и Даша”;

String massiv[]s=str.split(“ “);

создается массив строк, элементы которого – это подстроки (слова), разделенные символами, указанными в качестве аргумента метода (в данном случае – пробелом):

massiv[0]=”Маша”;

massiv[1]=”и”;

massiv[2]=”Даша”;

при этом сами разделители в подстроки не входят,

  1. поиск совпадения начала двух строк:

String str=”Берегите природу – мать вашу”;

String val=”Берег”;

boolean result=str.startsWith(val); // result=true

в этом случае строка strначинается с символов строкиval,

  1. поиск совпадения окончаний двух строк:

String str=”Берегите природу – мать вашу”;

String val=”шу”;

boolean result=str.endsWith(val); // result=true

в этом случае строка strзаканчивается символами строкиval.

Допускается сложение строк с числовыми величинами:

String str = 1 + 2 + 3; // str=”6”

Сначала выполняется арифметическоесложение, а затем результат преобразуетсяв строку.

При программировании этой операции нужно быть очень внимательным:

String str=”Сумма=” + 1 + 2 + 3; // str= “сумма=123”

В этом случае сначала производится сложение двух строк “Сумма=” +1 , причем второй операнд автоматически преобразуется в строку. Таким же образом в строку добавляются третий и четвертый операнды.

String str=1 + 2 + “ не равно ” 1 + 2; // str=”3 не равно 12”