Описание класса string

Хотя класс String подробно будет рассмотрен во второй части этой книги, здесь уместно кратко ознакомить с ним читателей, поскольку мы будем использовать строки в некоторых последующих примерах первой части. Вероятно, String — наиболее часто используемый класс из библиотеки классов Java. Очевидная причина этого в том, что строки — исключительно важный элемент программирования.

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

System.out.println("Это — также объект String");

строка "Это — также объект String" — константа типа String.

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

  • Если нужно изменить строку, всегда можно создать новую строку, содержащую все изменения.
  • В Java определен равноправный класс String, StringBuf fer, допускающий изменение строк, что позволяет выполнять в Java все обычные манипуляции со строками. (Класс StringBuf fer описан во второй части этой книги.)

Существует множество способов создания строк. Простейший из них — воспользоваться оператором вроде следующего: String myString = "тестовая строка";

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

System.out.println(myString);

Для объектов типа String в Java определена одна операция: +. Она служит для объединения двух строк. Например, оператор:

String myString = "Мне" + " нравится " + "Java.";

Приводит к тому, что содержимым переменной myString становится строка "Мне нравится Java".

Следующая программа иллюстрирует описанные концепции:

// Демонстрация применения строк.
class StringDemo {
public static void main(String args[]) {
String strObl = "Первая строка";
String strOb2 = "Вторая строка";
String strOb3 = strOb1 + " и " + strOb2;
System.out.println(strObl);
System.out.println(strOb2);
System.out.println(strOb3);
}
}

Эта программа создает следующий вывод: Первая строка
Вторая строка
Первая строка и вторая строка

Класс String содержит несколько методов, которые можно использовать. Опишем некоторые из них. С помощью метода equals () можно проверять равенство двух строк. Метод length () позволяет выяснить длину строки. Вызывая метод charAt (), можно получить символ с указанным индексом. Ниже приведены общие формы этих трех методов:

boolean equals(String объект)
int length( )
char charAt(int индекс)

Следующая программа демонстрирует применение этих методов:

// Демонстрация некоторых методов класса String.
class StringDemo2 {
public static void main(String args [] ) {
String strObl = "Первая строка";
String strOb2 = "Вторая строка";
String strOb3 = strObl;
System.out.println("Длина strObl: " + strObl.length ());
System.out.println("Символ с индексом 3 в strObl: " + strObl.charAt(3));
if(strObl.equals(strOb2))
System.out.println("strObl == strOb2");
else
System.out.println("strObl != str0b2");
if(strObl.equals(strOb3))
System.out.println("strObl == strOb3");
else
System.out.println("strObl != strOb3");
}
}

Эта программа генерирует следующий вывод:

Длина strObl: 12
Символ с индексом 3 в strObl: s
strObl != strOb2
strObl == strOb3

Конечно, подобно тому, как могут существовать массивы любого другого типа объектов, могут существовать и массивы строк. Например:

// Демонстрация использования массивов объектов типа String.
class StringDemo3 {
public static void main(String args[]) {
String str[] = { "один", "два", "три" };
for(int i=0; i System.out.println("str[" + i + "]: " + str[i]);
}
}

Вывод этой программы имеет вид:

str[0]: один
str[1]: два
str[2]: три

Как вы убедитесь из следующего раздела, строковые массивы играют важную роль во многих Java-программах.