Содержание | Предыдущий | Следующий | Индекс

20.12 Класс java.lang.String

Объект типа String, после того, как создаваемый, является неизменным. Это представляет последовательность фиксированной длины символов. Сравните это с классом StringBuffer (§20.13), который представляет поддающуюся изменению последовательность переменной длины символов.

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

public final class String {
	public String();
	public String(String value)
		throws NullPointerException;
	public String(StringBuffer buffer)
		throws NullPointerException;
	public String(char[] value)
		throws NullPointerException;
	public String(char[] value, int offset, int count)
		throws NullPointerException, IndexOutOfBoundsException;
	public String(byte[] ascii, int hibyte)
		throws NullPointerException;
	public String(byte[] ascii, int hibyte,
			int offset, int count)
		throws NullPointerException, IndexOutOfBoundsException;
	public String toString();
	public boolean equals(Object anObject);
	public int hashCode();
	public int length();
	public char charAt(int index);
	public void getChars(int srcBegin, int srcEnd,
			char dst[], int dstBegin)
throws NullPointerException, IndexOutOfBoundsException; public void getBytes(int srcBegin, int srcEnd, byte dst[], int dstBegin) throws NullPointerException, IndexOutOfBoundsException; public char[] toCharArray(); public boolean equalsIgnoreCase(String anotherString); public int compareTo(String anotherString) throws NullPointerException; public boolean regionMatches(int toffset, String other,
int ooffset, int len) throws NullPointerException; public boolean regionMatches(boolean ignoreCase, int toffset,
String other, int ooffset, int len) throws NullPointerException; public boolean startsWith(String prefix) throws NullPointerException; public boolean startsWith(String prefix, int toffset) throws NullPointerException; public boolean endsWith(String suffix) throws NullPointerException; public int indexOf(int ch); public int indexOf(int ch, int fromIndex); public int indexOf(String str) throws NullPointerException; public int indexOf(String str, int fromIndex) throws NullPointerException; public int lastIndexOf(int ch); public int lastIndexOf(int ch, int fromIndex); public int lastIndexOf(String str) throws NullPointerException; public int lastIndexOf(String str, int fromIndex) throws NullPointerException; public String substring(int beginIndex); public String substring(int beginIndex, int endIndex); public String concat(String str) throws NullPointerException; public String replace(char oldChar, char newChar); public String toLowerCase(); public String toUpperCase(); public String trim(); public static String valueOf(Object obj); public static String valueOf(char[] data) throws NullPointerException; public static String valueOf(char[] data, int offset, int count) throws NullPointerException, IndexOutOfBoundsException; public static String valueOf(boolean b); public static String valueOf(char c); public static String valueOf(int i); public static String valueOf(long l); public static String valueOf(float f); public static String valueOf(double d); public String intern(); }

20.12.1 public String()

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило пустую символьную последовательность.

20.12.2 public String(String value)

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило ту же самую последовательность символов как параметр; другими словами недавно создаваемая строка является копией строки параметра.

20.12.3 public String(StringBuffer buffer)
throws NullPointerException

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило последовательность символов, которая в настоящий момент содержится в StringBuffer параметр (§20.13). Содержание строкового буфера копируется; последующая модификация строкового буфера не влияет на недавно создаваемую строку.

Если buffer null, тогда a NullPointerException бросается.

20.12.4 public String(char[] data)
throws NullPointerException

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило последовательность символов, в настоящий момент содержавшихся в символьном параметре массива. Содержание символьного массива копируется; последующая модификация символьного массива не влияет на недавно создаваемую строку.

Если data null, тогда a NullPointerException бросается.

20.12.5 public String(char[] data, int offset, int count)
throws NullPointerException, IndexOutOfBoundsException

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило последовательность символов, в настоящий момент содержавшихся в подмассиве символьного параметра массива. offset параметром является индекс первого символа подмассива и count параметр определяет длину подмассива. Содержание подмассива копируется; последующая модификация символьного массива не влияет на недавно создаваемую строку.

Если data null, тогда a NullPointerException бросается.

Если offset отрицательно, или count отрицательно, или offset+count больше чем data.length, тогда IndexOutOfBoundsException бросается.

20.12.6 public String(byte[] ascii, int hibyte)
throws NullPointerException

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило последовательность символов, созданных из массива 8-разрядных целочисленных значений. Каждый символ c в результате строка создается из соответствующего элемента b из байтового массива таким способом, который:

c == ((hibyte & 0xff) << 8) | (b & 0xff)
Если ascii null, тогда a NullPointerException бросается.

20.12.7 public String(byte[] ascii, int hibyte,
int offset, int count)
throws NullPointerException,
IndexOutOfBoundsException

Этот конструктор инициализирует недавно создаваемый String возразите так, чтобы это представило последовательность символов, созданных из подмассива массива 8-разрядных целочисленных значений. offset параметром является индекс первого байта подмассива и count параметр определяет длину подмассива. Каждый символ c в результате строка создается из соответствующего элемента b из подмассива байта таким способом, который:

c == ((hibyte & 0xff) << 8) | (b & 0xff)
Если ascii null, тогда a NullPointerException бросается.

Если offset отрицательно, или count отрицательно, или offset+count больше чем ascii.length, тогда IndexOutOfBoundsException бросается.

20.12.8 public String toString()

Ссылка на этот объект (который, в конце концов, уже является a String) возвращается.

Переопределения toString метод Object (§20.1.2).

20.12.9 public boolean equals(Object anObject)

Результат true если и только если параметр не null и a String объект, который представляет ту же самую последовательность символов как это String объект.

Переопределения equals метод Object (§20.1.3).

См. также методы equalsIgnoreCase (§20.12.16) и compareTo (§20.12.17).

20.12.10 public int hashCode()

Хэш-код для a String объект вычисляется одним из двух способов, в зависимости от его длины. Позвольте n быть длиной (§20.12.11) символьной последовательности и позволять среднему значению символ с индексом i.

Переопределения hashCode метод Object (§20.1.4).

20.12.11 public int length()

Длина последовательности символов представляется этим String объект возвращается.

20.12.12 public char charAt(int index)
throws IndexOutOfBoundsException

Этот метод возвращает символ, обозначенный index параметр в пределах последовательности символов представляется этим String. Первый символ последовательности по индексу 0, следующее по индексу 1, и так далее, что касается индексации массива. Если index параметр отрицателен или не меньше чем длина (§20.12.11) этой строки, затем IndexOutOfBoundsException бросается.

20.12.13 public void getChars(int srcBegin, int srcEnd,
char dst[], int dstBegin)
throws NullPointerException,
IndexOutOfBoundsException

Символы копируются с этого String объект в целевой массив символа dst. Первый символ, который будет скопирован, по индексу srcBegin; последний знак, который будет скопирован, по индексу srcEnd-1 (таким образом общее количество символов, которые будут скопированы, srcEnd-srcBegin). Символы копируются в подмассив dst запуск по индексу dstBegin и окончание по индексу dstbegin+(srcEnd-srcBegin)-1.

Если dst null, тогда a NullPointerException бросается.

IndexOutOfBoundsException бросается, если какое-либо следующее является истиной:

20.12.14 public void getBytes(int srcBegin, int srcEnd,
byte dst[], int dstBegin)
throws NullPointerException,
IndexOutOfBoundsException

Символы копируются с этого String объект в целевой байтовый массив dst. Каждый байт получает только восемь битов младшего разряда соответствующего символа. Восемь битов старшего разряда каждого символа не копируются и не участвуют в передаче всегда. Первый символ, который будет скопирован, по индексу srcBegin; последний знак, который будет скопирован, по индексу srcEnd-1 (таким образом общее количество символов, которые будут скопированы, srcEnd-srcBegin). Символы, преобразованные в байты, копируются в подмассив dst запуск по индексу dstBegin и окончание по индексу dstbegin+(srcEnd-srcBegin)-1.

Если dst null, тогда a NullPointerException бросается.

IndexOutOfBoundsException бросается, если какое-либо следующее является истиной:

20.12.15 public char[] toCharArray()

Новый символьный массив создается и возвращается. Длина массива равна длине (§20.12.11) этого String объект. Массив инициализируется, чтобы содержать символьную последовательность, представленную этим String объект.

20.12.16 public boolean equalsIgnoreCase(String anotherString)

Результат true если и только если параметр не null и a String объект, который представляет ту же самую последовательность символов как это String объект, где регистр игнорируется.

Два символа считают тем же самым, игнорируя регистр, если по крайней мере одно из следующего является истиной:

Две последовательности символов являются тем же самым, игнорируя регистр, если у последовательностей есть та же самая длина, и соответствующие символы являются тем же самым, игнорируя регистр.

См. также метод equals (§20.12.9).

20.12.17 public int compareTo(String anotherString)
throws NullPointerException

Символьная последовательность представляется этим String объект сравнивается лексикографически с символьной последовательностью, представленной строкой параметра. Результатом является отрицательное целое число если это String объект лексикографически предшествует строке параметра. Результатом является положительное целое число если это String объект лексикографически следует за строкой параметра. Результатом является нуль, если строки равны; compareTo возвраты 0 точно, когда equals метод (§20.12.9) возвратился бы true.

Если anotherString null, тогда a NullPointerException бросается.

Это - определение лексикографического упорядочивания. Если две строки отличаются, то у или их есть различные символы по некоторому индексу, который является допустимым индексом для обеих строк, или их длины отличаются, или оба. Если у них есть различные символы в одной или более индексных позициях, k, которому позволяют, являются самыми маленькими такой индекс; тогда строка, у символа которой в позиции k есть меньшее значение, как определено при использовании < оператор, лексикографически предшествует другой строке. В этом случае, compareTo возвращает различие двух символьных значений в позиции k в двух строках - то есть, значения:

this.charAt(k)-anotherString.charAt(k)
Если нет никакой индексной позиции, в которой они отличаются, то более короткая строка лексикографически предшествует более длинной строке. В этом случае, compareTo возвращает различие длин строк - то есть, значение:

this.length()-anotherString.length()

20.12.18 public boolean regionMatches(int toffset,
String other, int ooffset, int len)
throws NullPointerException

Подстрока этого String объект по сравнению с подстрокой параметра other. Результат true если эти подстроки представляют идентичные символьные последовательности. Подстрока этого String объект, который будет сравнен, начинается по индексу toffset и имеет длину len. Подстрока other быть сравненным начинается по индексу ooffset и имеет длину len. Результат false если и только если по крайней мере одно из следующего является истиной:

Если other null, тогда a NullPointerException бросается.

20.12.19 public boolean regionMatches(boolean ignoreCase,
int toffset, String other, int ooffset, int len)
throws NullPointerException

Подстрока этого String объект по сравнению с подстрокой параметра other. Результат true если эти подстроки представляют символьные последовательности, которые являются тем же самым, игнорируя регистр если и только если ignoreCase истина. Подстрока этого String объект, который будет сравнен, начинается по индексу toffset и имеет длину len. Подстрока other быть сравненным начинается по индексу ooffset и имеет длину len. Результат false если и только если по крайней мере одно из следующего является истиной:


Character.toLowerCase(this.charAt(toffset+k)) !=
	Character.toLowerCase(other.charAt(ooffset+k))

Character.toUpperCase(this.charAt(toffset+k)) !=
	Character.toUpperCase(other.charAt(ooffset+k))
Если other null, тогда a NullPointerException бросается.

20.12.20 public boolean startsWith(String prefix)
throws NullPointerException

Результат true если и только если символьная последовательность, представленная параметром, является префиксом символьной последовательности, представленной этим String объект.

Если prefix null, a NullPointerException бросается.

Отметьте, что результат будет true если параметр является пустой строкой или равен этому String возразите как определено equals метод (§20.12.9).

20.12.21 public boolean startsWith(String prefix, int toffset)
throws NullPointerException

Результат true если и только если символьная последовательность, представленная параметром, является префиксом подстроки этого String объект, запускающийся по индексу toffset.

Если prefix null, тогда a NullPointerException бросается.

Результат false если toffset отрицательно или больше чем длина этого String объект; иначе, результатом является то же самое как результат выражения

this.subString(toffset).startsWith(prefix)

20.12.22 public boolean endsWith(String suffix)
throws NullPointerException

Результат true если и только если символьная последовательность, представленная параметром, является суффиксом символьной последовательности, представленной этим String объект.

Если suffix null, тогда a NullPointerException бросается.

Отметьте, что результат будет true если параметр является пустой строкой или равен этому String возразите как определено equals метод (§20.12.9).

20.12.23 public int indexOf(int ch)

Если символ со значением ch происходит в символьной последовательности, представленной этим String объект, тогда индекс первого такое возникновение возвращается - то есть, самое маленькое значение k так, что:

this.charAt(k) == ch
true. Если никакой такой символ не происходит в этой строке, то -1 возвращается.

20.12.24 public int indexOf(int ch, int fromIndex)

Если символ со значением ch происходит в символьной последовательности, представленной этим String объект по индексу, не меньшему чем fromIndex, тогда индекс первого такое возникновение возвращается - то есть, самое маленькое значение k так, что:

(this.charAt(k) == ch) && (k >= fromIndex)
true. Если никакой такой символ не происходит в этой строке в или после позиции fromIndex, тогда -1 возвращается.

Нет никакого ограничения на значение fromIndex. Если это отрицательно, это имеет тот же самый эффект, как будто это был нуль: эта вся строка может искаться. Если это больше чем длина этой строки, это имеет тот же самый эффект, как будто это было равно длине этой строки: -1 возвращается.

20.12.25 public int indexOf(String str)
throws NullPointerException

Если строка str происходит как подстрока этого String объект, тогда индекс первого символа первого такая подстрока возвращается - то есть, самое маленькое значение k так, что:

this.startsWith(str, k)
true. Если str не происходит как подстрока этой строки, тогда -1 возвращается.

Если str null, a NullPointerException бросается.

20.12.26 public int indexOf(String str, int fromIndex)
throws NullPointerException

Если строка str происходит как подстрока этого String объект, запускающийся по индексу, не меньшему чем fromIndex, тогда индекс первого символа первого такая подстрока возвращается - то есть, самое маленькое значение k так, что:

this.startsWith(str, k) && (k >= fromIndex)
true. Если str не происходит как подстрока этой строки в или после позиции fromIndex, тогда -1 возвращается.

Нет никакого ограничения на значение fromIndex. Если это отрицательно, это имеет тот же самый эффект, как будто это был нуль: эта вся строка может искаться. Если это больше чем длина этой строки, это имеет тот же самый эффект, как будто это было равно длине этой строки: -1 возвращается.

Если str null, a NullPointerException бросается.

20.12.27 public int lastIndexOf(int ch)

Если символ со значением ch происходит в символьной последовательности, представленной этим String объект, тогда индекс последнего такое возникновение возвращается - то есть, самое большое значение k так, что:

this.charAt(k) == ch
истина. Если никакой такой символ не происходит в этой строке, то -1 возвращается.

20.12.28 public int lastIndexOf(int ch, int fromIndex)

Если символ со значением ch происходит в символьной последовательности, представленной этим String объект по индексу, не больше чем fromIndex, тогда индекс последнего такое возникновение возвращается - то есть, самое большое значение k так, что:

(this.charAt(k) == ch) && (k <= fromIndex)
истина. Если никакой такой символ не происходит в этой строке в или перед позицией fromIndex, тогда -1 возвращается.

Нет никакого ограничения на значение fromIndex. Если это больше чем или равно длине этой строки, это имеет тот же самый эффект, как будто это было равно меньше чем длина этой строки: эта вся строка может искаться. Если это отрицательно, это имеет тот же самый эффект, как будто это было -1: -1 возвращается.

20.12.29 public int lastIndexOf(String str)
throws NullPointerException

Если строка str происходит как подстрока этого String объект, тогда индекс первого символа последнего такая подстрока возвращается - то есть, самое большое значение k так, что:

this.startsWith(str, k)
истина. Если str не происходит как подстрока этой строки, тогда -1 возвращается.

Если str null, a NullPointerException бросается.

20.12.30 public int lastIndexOf(String str, int fromIndex)
throws NullPointerException

Если строка str происходит как подстрока этого String объект, запускающийся по индексу, не больше чем fromIndex, тогда индекс первого символа последнего такая подстрока возвращается - то есть, самое большое значение k так, что:

this.startsWith(str, k) && (k <= fromIndex)
true. Если str не происходит как подстрока этой строки в или перед позицией fromIndex, тогда -1 возвращается.

Нет никакого ограничения на значение fromIndex. Если это больше чем длина этой строки, это имеет тот же самый эффект, как будто это было равно длине этой строки: эта вся строка может искаться. Если это отрицательно, это имеет тот же самый эффект, как будто это было -1: -1 возвращается.

Если str null, a NullPointerException бросается.

20.12.31 public String substring(int beginIndex)
throws IndexOutOfBoundsException

Результат недавно создан String объект, который представляет подпоследовательность символьной последовательности, представленной этим String объект; эта подпоследовательность начинается с символа в позиции beginIndex и расширяется до конца символьной последовательности.

Если beginIndex отрицательно или больше чем длина этого String объект, затем IndexOutOfBoundsException бросается.

Примеры:


"unhappy".substring(2) returns "happy"

"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)

20.12.32 public String substring(int beginIndex, int endIndex)
throws IndexOutOfBoundsException

Результат недавно создан String объект, который представляет подпоследовательность символьной последовательности, представленной этим String объект; эта подпоследовательность начинается с символа в позиции beginIndex и концы с символом в позиции endIndex-1. Таким образом длина подпоследовательности endIndex-beginIndex.

Если beginIndex отрицательно, или endIndex больше чем длина этого String объект, или beginIndex больше чем endIndex, тогда этот метод бросает IndexOutOfBoundsException.

Примеры:


"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"

20.12.33 public String concat(String str)
throws NullPointerException

Если длина строки параметра является нулем, то ссылка на это String объект возвращается. Иначе, новое String объект создается, представляя символьную последовательность, которая является связью символьной последовательности, представленной этим String возразите и символьная последовательность, представленная строкой параметра.

Примеры:


"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
Если str null, a NullPointerException бросается.

20.12.34 public String replace(char oldChar, char newChar)

Если символ oldChar не происходит в символьной последовательности, представленной этим String объект, затем ссылка на это String объект возвращается. Иначе, новое String объект создается, который представляет символьную последовательность, идентичную символьной последовательности, представленной этим String объект, за исключением того, что каждое возникновение oldChar заменяется возникновением newChar.

Примеры:


"mesquite in your cellar".replace('e', 'o')
					returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
					returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
					returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)

20.12.35 public String toLowerCase()

Если это String объект не содержит символа, который отображается на различный символ методом Character.toLowerCase (§20.5.20), затем ссылка на это String объект возвращается. Иначе, этот метод создает новое String объект, который представляет символьную последовательность, идентичную в длине к символьной последовательности, представленной этим String объект, с каждым символом, равным результату применения метода Character.toLowerCase к соответствующему символу этого String объект.

Примеры:


"French Fries".toLowerCase() returns "french fries"
"".toLowerCase() returns ""

20.12.36 public String toUpperCase()

Если это String объект не содержит символа, который отображается на различный символ методом Character.toUpperCase (§20.5.21), затем ссылка на это String объект возвращается. Иначе, этот метод создает новое String объект, представляющий символьную последовательность, идентичную в длине к символьной последовательности, представляется этим String возразите и с каждым символом, равным результату применения метода Character.toUpperCase к соответствующему символу этого String объект.

Примеры:


"Fahrvergnügen".toUpperCase() returns "FAHRVERGNÜGEN"
"Visit Ljubinje!".toUpperCase() returns "VISIT LJUBINJE!"

20.12.37 public String trim()

Если это String объект представляет пустую символьную последовательность, или первые и последние символы символьной последовательности, представленной этим String возразите, что у обоих есть коды, больше чем \u0020 (пробел), затем ссылка на это String объект возвращается.

Иначе, если нет никакого символа с кодом, больше чем \u0020 в строке, затем новое String объект, представляющий пустую строку, создается и возвращается.

Иначе, позвольте k быть индексом первого символа в строке, код которой больше чем \u0020, и позвольте м. быть индексом последнего знака в строке, код которой больше чем \u0020. Новое String объект создается, представляя подстроку этой строки, которая начинается с символа по индексу k и заканчивает символом по индексу м. то есть, результат this.substring(k, м.+1).

Этот метод может использоваться, чтобы обрезать пробел (§20.5.19) с начала и конца строки; фактически, это обрезает все управляющие символы ASCII также.

20.12.38 public static String valueOf(Object obj)

Если параметр null, тогда строка, равная "null" возвращается. Иначе, значение obj.toString() возвращается. См. toString метод (§20.1.2).

20.12.39 public static String valueOf(char[] data)
throws NullPointerException

Строка создается и возвращается. Строка представляет последовательность символов, в настоящий момент содержавшихся в символьном параметре массива. Содержание символьного массива копируется; последующая модификация символьного массива не влияет на недавно создаваемую строку.

20.12.40 public static String valueOf(char[] data,
int offset, int count)
throws NullPointerException,
IndexOutOfBoundsException

Строка создается и возвращается. Строка представляет последовательность символов, в настоящий момент содержавшихся в подмассиве символьного параметра массива. offset параметром является индекс первого символа подмассива и count параметр определяет длину подмассива. Содержание подмассива копируется; последующая модификация символьного массива не влияет на недавно создаваемую строку.

Если data null, тогда a NullPointerException бросается.

Если offset отрицательно, или count отрицательно, или offset+count больше чем data.length, тогда IndexOutOfBoundsException бросается.

20.12.41 public static String valueOf(boolean b)

Строковое представление b возвращается.

Если параметр true, строка "true" возвращается.

Если параметр false, строка "false" возвращается.

20.12.42 public static String valueOf(char c)

Строка создается и возвращается. Строка содержит один символ, равный c.

20.12.43 public static String valueOf(int i)

Строка создается и возвращается. Строка вычисляется точно как будто методом Integer.toString из одного параметра (§20.7.12).

20.12.44 public static String valueOf(long l)

Строка создается и возвращается. Строка вычисляется точно как будто методом Long.toString из одного параметра (§20.8.12).

20.12.45 public static String valueOf(float f)

Строка создается и возвращается. Строка вычисляется точно как будто методом Float.toString из одного параметра (§20.9.16).

20.12.46 public static String valueOf(double d)

Строка создается и возвращается. Строка вычисляется точно как будто методом Double.toString из одного параметра (§20.10.15).

20.12.47 public String intern()

Пул строк, первоначально пустых, сохраняется конфиденциально классом String.

Когда метод интерна вызывается, если пул уже содержит строку, равную этому String возразите как определено equals метод (§20.12.9), тогда строка от пула возвращается. Иначе, это String объект добавляется к пулу и ссылке на это String объект возвращается.

Из этого следует, что для любых двух строк s и t, s.intern() == t.intern() true если и только если s.equals(t) true.

Все литеральные строки и оцененные строке константные выражения интернируются (§3.10.5).


Содержание | Предыдущий | Следующий | Индекс

Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com



Spec-Zone.ru - all specs in one place



free hit counter