Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java / Java_Intro1_220509.pdf
Скачиваний:
227
Добавлен:
11.05.2015
Размер:
1.71 Mб
Скачать

Массивы, имеющие более двух индексов (измерений), задаются аналогично с указанием необходимого количества квадратных скобок. Java поддерживает до 60 измерений для массивов.

2.8.2. Строки

Строки являются сложным типом данных, который служит для представления текста в прогрмме. Для работы со строками в Java предназначен класс String, таким образом, строки в Java являются объектами.

Класс String содержит методы и процедуры работы со строковыми данными. Объект типа String – строка с произвольным набором символов от 0 до 2*109. Строки (строковые литералы) представляют собой последовательность символов, заключенных в двойные кавычки – “B”, “Alpha”, “B11jf”, “Моя строка”, “”.

Одним из недостатков Java является несовместимость строкового типа и символьного, то есть “А” - строка, состоящая из одного символа, а 'А' – число ASCII кода символа “А”.

Строки можно складывать друг с другом, с переменными и константами типа char, а так же можно прибавлять к строкам значение числовых переменных, которое автоматически преобразовывается в строковое при помощи метода toString(), находящегося в классе

Object.

Для того, чтобы подробнее ознакомиться с новым типом, создайте класс с именем My_String, добавьте метод main(String[] args) и введите предложенный ниже код:

public class My_String {

public static void main(String[] args) { String s1 = "Привет", s2;

char ch1 = ‘!’;

s2 = "М"+"и"+"р"+ch1; System.out.println(s1+s2);

}

}

В результате выполнения программы вы увидите в консольном окне знакомую надпись «Привет Мир!», которая была получена сложением двух строк s1 и s2. Строка s2 строилась из 4-х частей, одна из которых является переменной типа char.

Любая последовательность символов (строка) является объектом (экземпляром класса String), а переменные типа String являются ссылками на эти объекты. Строки являются неизменяемыми объектами, поэтому при изменении содержимого создается новый объект класса String, а старая строка превращается в «мусор», т.е неиспользуемые данные в памяти. В связи с этим следует помнить, что при многократном изменении строк, в памяти остается много мусора.

Переменные типа String не содержат внутри строк, а только являются ссылкой на ячейку памяти, где хранятся эти объекты-строки. Наиболее распространенной ошибкой у начинающих является использование в сравнении строк оператора «==». В результате выполнения происходит сравнение не содержимого строк, а адресов

(ссылок), на которые ссылаются переменные типа String. Пример.

public class My_String {

public static void main(String[] args) { String s1 = "String1", s2 = "String2"; if (s1==s2)

System.out.println(“s1 равно s2”) else

System.out.println(“s1 не равно s2”)

}

}

Условие s1==s2 не выполняется именно потому, что s1 и s2 содержат разные адреса памяти. Однако попробуем изменить строку s2 = "String2" на s2 = "String1”. Теперь строки равны, и после выполнения программы вы увидите, что условие s1==s2 будет истинным и на консоли появится сообщение «s1 равно s2». Компилятор Java анализирует имеющиеся в коде программы литерные константы и в случае совпадения двух или более использует для них один и тот же объект-строку.

Для корректного сравнения двух строк используется метод equals(object). Для сравнения строк в условии необходимо записать

s1.equals(s2).

Класс String имеет ряд методов для работы со строками, рассмотрим часто используемые методы в табл. 15.

 

 

 

 

Та блица 15

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

Метод

 

Описание

s1.charAt(i)

символ в строке s1, имеющий индекс i

(индексация начинается с нуля)

s1.length()

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

 

возвращает

true в случае, когда строка

s1.startsWith(subS)

s1 начинается

последовательностью

 

символов, содержащихся в строке subS

 

возвращает

true в случае, когда строка

s1.endsWith(subS)

s1 заканчивается последовательностью

 

символов, содержащихся в строке subS

 

возвращает

строку,

скопированную и

s1.substring(i,j)

строки s1 начинающуюся с символа с

индексом

i

и

заканчивающуюся

 

 

символом с индексом j

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