Вход/Регистрация
Визуальное программирование на Java Swing в NetBeans
вернуться

Талипов Сергей

Шрифт:

– hashCode – хеш код строки;

– indexOf(int ch) – поиск первого вхождения символа в строке;

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

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

– lastIndexOf(int ch) – поиск последнего вхождения символа;

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

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

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

– replace(char oldChar, char newChar) – замена в строке одного символа на другой;

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

– 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"

  • Читать дальше
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: