Spec-Zone .ru
спецификации, руководства, описания, API
|
String
У class есть много методов для того, чтобы исследовать содержание строк, находя символы или подстроки в пределах строки, изменяя случай, и другие задачи.
Можно добраться, символ в детали индексируют в пределах строки, вызывая charAt()
метод средства доступа. Индексирование первого символа 0, в то время как индексирование последнего знака length()-1
. Например, следующий код добирается, символ в индексируют 9 в строке:
String anotherPalindrome = "Niagara. O roar again!"; char aChar = anotherPalindrome.charAt(9);
Индексы начинаются в 0, таким образом, символ в индексирует 9, 'O', как иллюстрировано в следующем числе:
Если Вы хотите получить больше чем один последовательный символ от строки, можно использовать substring
метод. substring
у метода есть две версии, как показано в следующей таблице:
Метод | Описание |
---|---|
String substring(int beginIndex, int endIndex) |
Возвращает новую строку, которая является подстрокой этой строки. Первый целочисленный параметр определяет индексирование первого символа. Вторым целочисленным параметром является индексирование последнего знака - 1. |
String substring(int beginIndex) |
Возвращает новую строку, которая является подстрокой этой строки. Целочисленный параметр определяет индексирование первого символа. Здесь, возвращенная подстрока расширяется до конца исходной строки. |
Следующий код получает от Ниагарского палиндрома подстроку, которая расширяется от, индексируют 11 до, но не включая, индексируют 15, который является словом "рев":
String anotherPalindrome = "Niagara. O roar again!"; String roar = anotherPalindrome.substring(11, 15);
Вот несколько другие String
методы для того, чтобы управлять строками:
Метод | Описание |
---|---|
String[] split(String regex) String[] split(String regex, int limit) |
Поиски соответствия как определено строковым параметром (который содержит регулярное выражение) и разделяют эту строку на массив строк соответственно. Дополнительный целочисленный параметр определяет максимальный размер возвращенного массива. Регулярные выражения покрываются уроком, названным "Регулярные выражения." |
CharSequence subSequence(int beginIndex, int endIndex) |
Возвращает новую символьную последовательность, созданную из beginIndex индексируйте вплоть до endIndex - 1. |
String trim() |
Возвращает копию этой строки с продвижением и запаздывающим удаленным пробелом. |
String toLowerCase() |
Возвращает копию этой строки, преобразованной в строчный или верхний регистр. Если никакие преобразования не необходимы, эти методы возвращают исходную строку. |
Вот некоторый другой String
методы для того, чтобы найти символы или подстроки в пределах строки. String
class обеспечивает методы средства доступа, которые возвращают позицию в пределах строки определенного символа или подстроки: indexOf()
и lastIndexOf()
. indexOf()
методы ищут вперед от начала строки, и lastIndexOf()
методы ищут назад от конца строки. Если символ или подстрока не находятся, indexOf()
и lastIndexOf()
возвратитесь-1.
String
class также обеспечивает метод поиска, contains
, это возвращает true, если строка содержит определенную символьную последовательность. Используйте этот метод, когда Вы только должны знать, что строка содержит символьную последовательность, но точное расположение не важно.
Следующая таблица описывает различные методы поиска строки.
Метод | Описание |
---|---|
int indexOf(int ch) |
Возвращает индексирование первого (последнего) возникновения указанного символа. |
int indexOf(int ch, int fromIndex) |
Возвращает индексирование первого (последнего) возникновения указанного символа, ища вперед (назад) от указанного индексирует. |
int indexOf(String str) |
Возвращает индексирование первого (последнего) возникновения указанной подстроки. |
int indexOf(String str, int fromIndex) |
Возвращает индексирование первого (последнего) возникновения указанной подстроки, ища вперед (назад) от указанного индексирует. |
boolean contains(CharSequence s) |
Возвращает true, если строка содержит указанную символьную последовательность. |
CharSequence
интерфейс, который реализуется String
class. Поэтому, можно использовать строку в качестве параметра за contains()
метод. String
У class есть очень немного методов для того, чтобы вставить символы или подстроки в строку. Вообще, они не необходимы: можно создать новую строку связью подстрок, которые Вы удалили из строки с подстрокой, которую Вы хотите вставить.
String
У class действительно есть четыре метода для того, чтобы заменить найденный символами или подстроками, как бы то ни было. Они:
Метод | Описание |
---|---|
String replace(char oldChar, char newChar) |
Возвращает новую строку, следующую из замены всех возникновений oldChar в этой строке с newChar. |
String replace(CharSequence target, CharSequence replacement) |
Замены каждая подстрока этой строки, которая соответствует литеральную целевую последовательность с указанной литеральной заменяющей последовательностью. |
String replaceAll(String regex, String replacement) |
Замены каждая подстрока этой строки, которая соответствует данное регулярное выражение с данной заменой. |
String replaceFirst(String regex, String replacement) |
Заменяет первую подстроку этой строки, которая соответствует данное регулярное выражение с данной заменой. |
Следующий class, Filename
, иллюстрирует использование lastIndexOf()
и substring()
изолировать различные части имени файла.
Filename
class не делает никакой проверки на ошибки и предполагает, что их параметр содержит полный путь к каталогу и имя файла с расширением. Если бы эти методы были производственным кодом, то они проверили бы, что их параметры были должным образом созданы. public class Filename { private String fullPath; private char pathSeparator, extensionSeparator; public Filename(String str, char sep, char ext) { fullPath = str; pathSeparator = sep; extensionSeparator = ext; } public String extension() { int dot = fullPath.lastIndexOf(extensionSeparator); return fullPath.substring(dot + 1); } // gets filename without extension public String filename() { int dot = fullPath.lastIndexOf(extensionSeparator); int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(sep + 1, dot); } public String path() { int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(0, sep); } }
Вот программа, FilenameDemo
, это создает a Filename
объект и вызовы все его методы:
public class FilenameDemo { public static void main(String[] args) { final String FPATH = "/home/user/index.html"; Filename myHomePage = new Filename(FPATH, '/', '.'); System.out.println("Extension = " + myHomePage.extension()); System.out.println("Filename = " + myHomePage.filename()); System.out.println("Path = " + myHomePage.path()); } }
И вот вывод из программы:
Extension = html Filename = index Path = /home/user
Как показано в следующем числе, нашем extension
использование метода lastIndexOf
определять местоположение последнего вхождения периода (.) в имени файла. Затем substring
использует возвращаемое значение lastIndexOf
извлечь расширение файла — то есть, подстрока с периода до конца строки. Этот код предполагает, что у имени файла есть период в нем; если у имени файла нет периода, lastIndexOf
возвраты-1, и метод подстроки бросают a StringIndexOutOfBoundsException
.
Кроме того, заметьте что extension
использование метода dot + 1
как параметр substring
. Если символ точки(.) является последним знаком строки, dot + 1
равно длине строки, которая является одним большим, чем самые большие индексируют в строку (потому что индексы запускаются в 0). Это - юридический параметр substring
потому что тот метод принимает индексирование равного, но не больше чем, длина строки и интерпретирует это, чтобы означать "конец строки."