Читаем Визуальное программирование на Java Swing в NetBeans полностью

– toLowerCase(Locale locale) – преобразовать строку в нижний регистр, используя указанную локализацию;

Методы поиска возвращают индекс вхождения или -1, если искомое не найдено. Методы преобразования (как replace) не изменяют саму строку, а возвращают соответствующий новый объект строки.

Особенности String. Неправильное использование типа String приводит к засорению оперативной памяти и как следствие к медленной работе программы. Рассмотрим пример:


public static void main(String[] args) {

String s = "a";

for (int i = 0; i < 100; i++) {

s += 'a';

}

System.out.println(s); // Распечатается строка из 100 символов «a»

}


Этот код создаст 100 разных строк, которые будут храниться в памяти, пока сборщик мусора Java не удалит их после завершения программы. В результате работы программы переменная «s» будет содержать строку из 100 символов «a», но 99 ранее созданных строк остались «мусором» в памяти без возможности обращения к ним.

Поэтому для изменения строки следует использовать класс обертку StringBuilder. Предыдущий пример нужно переписать следующим образом:


public static void main(String[] args) {

StringBuilder s = new StringBuilder("a");

for (int i = 0; i < 100; i++) {

s.append('a');

}

System.out.println(s); // Распечатается строка из 100 символов «a»

}


Динамические строки. Динамические строки описываются классами StringBuilder и StringBuffer. StringBuffer более медленный, но потокобезопасный. Переменные типа динамических строк могут менять свои значения и длину во время выполнения программы.

Основные методы динамических строк:

– append(A) – преобразовать A в строку и добавить в конец;

– insert(int offset, A) – преобразовать A в строку и вставить ее в указанную позицию;

– delete(int start, int end) – удалить символы с указанной начальной позиции по указанную конечную позицию;

– reverse – расположить символы в обратном порядке;

– setCharAt(int index, char ch) – заменить символ в указанной позиции;

– setLength(int newLength) – установить новый размер строки;

– substring(int start) – вернуть подстроку с указанной позиции и до конца как строку;

– substring(int start, int end) – вернуть подстроку как строку;

– deleteCharAt(int index) – удалить символ в указанной позиции;

– getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) – сохранить последовательность символов в массив;

– indexOf(String str) – поиск первого вхождения подстроки;

– indexOf(String str, int fromIndex) – поиск первого вхождения подстроки с указанной позиции;

– lastIndexOf(String str) – поиск последнего вхождения подстроки;

– lastIndexOf(String str, int fromIndex) – поиск последнего вхождения подстроки с указанной позиции;

– replace(int start, int end, String str) – замена участка строки указанной строкой.

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


package tsn01.string;

public class TSN01_String {

public static void main(String[] args) {

char s[] = {'J', 'a', 'v', 'a'}; // Массив символов

String str = new String(s); // str="Java"

if (!str.isEmpty) {

int i = str.length; // i=4

str = str.toUpperCase; // str="JAVA"

String num = String.valueOf(6); // num="6"

num = str.concat("-" + num); // num="JAVA-6"

char ch = str.charAt(2); // ch='V'

i = str.lastIndexOf('A'); // i=3 (-1 если нет)

num = num.replace("6", "SE"); // num="JAVA-SE"

str.substring(0, 4).toLowerCase; // java

str = num + "-6";// str="JAVA-SE-6"

String[] arr = str.split("-");

for (String ss : arr) { // В результате будет выведен массив строк (в 3 строчки): JAVA SE 6

System.out.println(ss);

}

} else { System.out.println("String is empty!"); }

}

}


Пример сравнение строк. В этом примере рассмотрены особенности хранения и идентификации объектов на примере вызова метода equals, сравнивающего строку String с указанным объектом и метода hashCode, который вычисляет хэш-код объекта (hashCode – это цифра, которая формируется для объекта по какому то правилу, например для объекта класса String по такой формуле: s[0]*31^(n-1) s[1]*31^(n-2) … s[n-1]):


package tsn01.string;

public class TSN01_String {

public static void main(String[] args) {

String s1 = "Java";

String s2 = "Java";

String s3 = new String("Java");

System.out.println(s1 + "==" + s2 + " : " + (s1 == s2)); // true

System.out.println(s1 + "==" + s3 + " : " + (s1 == s3)); // false

System.out.println(s1 + " equals " + s2 + " : " + s1.equals(s2)); // true

System.out.println(s1 + " equals " + s3 + " : " + s1.equals(s3)); // true

System.out.println(s1.hashCode);

System.out.println(s2.hashCode);

System.out.println(s3.hashCode);

}

}


В результате на экран будет выведено:


Java==Java : true

Java==Java : false

Java equals Java : true

Java equals Java : true

2301506

2301506

2301506


Пример сортировки массива строк методом перебора:


package tsn01.string;

public class TSN01_String {

public static void main(String[] args) {

String a[] = {" Alena", "Alice ", " alina", " albina", " Anastasya",

" ALLA ", "AnnA "}; // Массив строк

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Приемы создания интерьеров различных стилей
Приемы создания интерьеров различных стилей

Книга по созданию трехмерных проектов интерьеров при помощи популярного редактора трехмерной графики 3ds Max позволит каждому, кто хочет заняться моделированием 3D-интерьеров, найти необходимую информацию для воплощения идеи в жизнь. Описывается моделирование элементов и стили оформления интерьеров, работа с материалами и текстурами, способы повышения реалистичности изображений, визуализация. Рассматриваются особенности создания интерьеров в различных стилях: минимализм, ренессанс, барокко, античный, рококо, хай-тек, техно и др. Компакт-диск содержит сцены, сцены-образы, изображения для создания текстур и рисунки из книги в цветном исполнении.Для дизайнеров интерьеров, архитекторов, визуализаторов, разработчиков игр, а также пользователей, увлекающихся трехмерной графикой.

Сергей Михайлович Тимофеев , С. М. Тимофеев

Хобби и ремесла / Программирование, программы, базы данных / Программирование / Прочая компьютерная литература / Дом и досуг / Книги по IT