воскресенье, 5 февраля 2017 г.

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

Когда начал писать свой первый калькулятор понял, что нужно хорошо знать методы работы со строками.
Небольшая шпаргалка для себя.


Статические строки


Статические строки реализуются через класс String. Объект строки автоматически создается при использовании строковой литералы. А также для строк доступна операция +, позволяющая соединить несколько строк в одну. Если один из операндов не строка, то он автоматически преобразуется в строку. Для объектов в этих целях используется метод toString().

Некоторые методы объекта String:
compareTo(String anotherString) — лексиграфическое сравнение строк;
compareToIgnoreCase(String str) — лексиграфическое сравнение строк без учета регистра символов;
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) — тест на идентичность участков строк, можно указать учет регистра символов;
regionMatches(int toffset, String other, int ooffset, int len) — тест на идентичность участков строк;
concat(String str) — возвращает соединение двух строк;
contains(CharSequence s) — проверяет, входит ли указанная последовательность символов в строку;
endsWith(String suffix) — проверяет завершается ли строка указанным суффиксом;
startsWith(String prefix) — проверяет, начинается ли строка с указанного префикса;
startsWith(String prefix, int toffset) — проверяет, начинается ли строка в указанной позиции с указанного префикса;
equals(Object anObject) — проверяет идентична ли строка указанному объекту;
getBytes() — возвращает байтовое представление строки;
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) — возвращает символьное представление участка строки;
hashCode() — хеш код строки;
indexOf(int ch) — поиск первого вхождения символа в строке;
indexOf(int ch, int fromIndex) — поиск первого вхождения символа в строке с указанной позиции;
indexOf(String str) — поиск первого вхождения указанной подстроки;
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) — замена в строке одного символа на другой;
replace(CharSequence target, CharSequence replacement) — замена одной подстроки другой;
substring(int beginIndex, int endIndex) — возвратить подстроку как строку;
toLowerCase() — преобразовать строку в нижний регистр;
toLowerCase(Locale locale) — преобразовать строку в нижний регистр, используя указанную локализацию;
toUpperCase() — преобразовать строку в верхний регистр;
toUpperCase(Locale locale) — преобразовать строку в верхний регистр, используя указанную локализацию;
trim() — отсечь на концах строки пустые символы;
valueOf(a) — статические методы преобразования различных типов в строку.

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

Статические строки также имеют ряд методов использующие регулярные выражения:
matches(String regex) — удовлетворяет ли строка указанному регулярному выражению;
replaceAll(String regex, String rplс) — заменяет все вхождения строк, удовлетворяющих регулярному выражению, указанной строкой;
replaceFirst(String regex, String rplс) — заменяет первое вхождение строки, удовлетворяющей регулярному выражению, указанной строкой;
split(String regex) — разбивает строку на части, границами разбиения являются вхождения строк, удовлетворяющих регулярному выражению;
split(String regex, int limit) — аналогично предыдущему, но с ограничением применения регулярного выражения к строке значением limit. Если limit>0, то и размер возвращаемого массива строк не будет больше limit. Если limit<=0, то регулярное выражение применяется к строке неограниченное число раз.
динамические строки
Если необходимо сделать множество преобразований над строкой, то на это время эффективнее воспользоваться динамической строкой, реализуемой классом StringBuffer.

Некоторые методы объекта StringBuffer:
append(A) — преобразовать A в строку и добавить в конец;
insert(int offset, A) — преобразовать A в строку и вставить ее в указанную позицию;
delete(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) — замена участка строки указанной строкой;
reverse() — расположить символы в обратном порядке;
setCharAt(int index, char ch) — заменить символ в указанной позиции;
setLength(int newLength) — установить новый размер строки;
substring(int start) — вернуть подстроку с указанной позиции и до конца как строку;
substring(int start, int end) — вернуть подстроку как строку.

Интерфейс CharSequence
Оба строковых класса реализуют интерфейс CharSequence, т.е. включают в себя методы:
charAt(int index) — символ в указанной позиции;
length() — размер строки;
subSequence(int start, int end) — вернуть подстроку как последовательность символов;
toString() — вернуть строковое представление объекта.

Комментариев нет:

Отправить комментарий