Сергей Николаевич Талипов - Визуальное программирование на Java Swing в NetBeans стр 9.

Шрифт
Фон

String s ="very .... long string from file";

String sub1 = s.substring(2,4); // совместно использует ту же память что и s

String sub2 = new String(s.substring(2,4)); // этот объект использует отдельный массив на 4 символа




Основные методы. Рассмотрим основные методы String:

 equals(Object anObject) проверяет, идентична ли строка указанному объекту;

 compareTo(String anotherString) лексиграфическое сравнение строк;

 compareToIgnoreCase(String str) лексиграфическое сравнение строк без учета регистра символов;

 concat(String str) возвращает соединение двух строк;

 contains(CharSequence s) проверяет, входит ли указанная последовательность символов в строку;

 isEmpty() возвращает true, если длина строки равна 0;

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

 replace(CharSequence target, CharSequence replacement) замена одной подстроки другой;

 substring(int beginIndex, int endIndex) возвратить подстроку как строку;

 toLowerCase() преобразовать строку в нижний регистр;

 toUpperCase() преобразовать строку в верхний регистр;

 trim() отсечь на концах строки пустые символы;

 length() определение длины строки;

 valueOf(a) статические методы преобразования различных типов в строку;

 charAt(int index) возвращает символ по указанному индексу;

 regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) тест на идентичность участков строк, можно указать учет регистра символов;

 regionMatches(int toffset, String other, int ooffset, int len) тест на идентичность участков строк;

 endsWith(String suffix) проверяет, завершается ли строка указанным суффиксом;

 startsWith(String prefix) проверяет, начинается ли строка с указанного префикса;

 startsWith(String prefix, int toffset) проверяет, начинается ли строка в указанной позиции с указанного префикса;

 getBytes() возвращает байтовое представление строки;

 getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) возвращает символьное представление участка строки;

 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) заменить символ в указанной позиции;

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3