в Java , низът е основно обект, който представлява последователност от char стойности. Ан масив от знаци работи по същия начин като Java низ. Например:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
е същото като:
String s='javatpoint';
Java String предоставя много методи за извършване на операции върху низове като compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring() и т.н.
Класът java.lang.String реализира Може да се сериализира , Сравними и CharSequence интерфейси .
Интерфейс CharSequence
Интерфейсът CharSequence се използва за представяне на последователността от знаци. низ, StringBuffer и StringBuilder класовете го изпълняват. Това означава, че можем да създаваме низове в Java, като използваме тези три класа.
Java String е неизменен, което означава, че не може да бъде променян. Всеки път, когато променим който и да е низ, се създава нов екземпляр. За променливи низове можете да използвате класове StringBuffer и StringBuilder.
Ще обсъдим неизменния низ по-късно. Нека първо разберем какво е String в Java и как да създадем String обекта.
Какво е String в Java?
Най-общо String е поредица от знаци. Но в Java низът е обект, който представлява последователност от знаци. Класът java.lang.String се използва за създаване на низов обект.
Как да създадете низов обект?
Има два начина за създаване на String обект:
- Чрез низов литерал
- По нова ключова дума
1) Низов литерал
Java String literal се създава с помощта на двойни кавички. Например:
String s='welcome';
Всеки път, когато създавате низов литерал, JVM първо проверява „пула с постоянни низове“. Ако низът вече съществува в пула, се връща препратка към събрания екземпляр. Ако низът не съществува в пула, се създава нов екземпляр на низ и се поставя в пула. Например:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
В горния пример ще бъде създаден само един обект. Първо, JVM няма да намери нито един низов обект със стойността „Добре дошли“ в низовия константен пул, поради което ще създаде нов обект. След това ще намери низа със стойността „Добре дошли“ в пула, няма да създаде нов обект, но ще върне препратката към същия екземпляр.
Забележка: Низовите обекти се съхраняват в специална област на паметта, известна като „константен набор от низове“.
Защо Java използва концепцията за String literal?
За да направи Java по-ефективна паметта (тъй като не се създават нови обекти, ако вече съществува в низовия константен пул).
2) По нова ключова дума
String s=new String('Welcome');//creates two objects and one reference variable
В такъв случай, JVM ще създаде нов низов обект в нормална (без пул) хийп памет и буквалното „Добре дошли“ ще бъде поставено в низовия константен пул. Променливата s ще препраща към обекта в куп (не-пул).
оператори if else java
Пример за низ на Java
StringExample.java
public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }}Тествайте сега
Изход:
java strings example
Горният код преобразува a въглен масив в a низ обект. И показва String обектите s1, s2 , и s3 на конзолата с помощта println() метод.
Java String клас методи
Класът java.lang.String предоставя много полезни методи за извършване на операции върху последователност от char стойности.
Не. | Метод | Описание |
---|---|---|
1 | char charAt(int индекс) | Връща стойност char за конкретния индекс |
2 | int дължина () | Връща дължината на низа |
3 | статичен формат на низ (формат на низ, обект... аргументи) | Връща форматиран низ. |
4 | статичен формат на низ (локал l, формат на низ, обект... аргументи) | Връща форматиран низ с даден локал. |
5 | Подниз на низ (int beginIndex) | Връща подниз за даден начален индекс. |
6 | Подниз от низ (int beginIndex, int endIndex) | Връща подниз за даден начален индекс и краен индекс. |
7 | boolean съдържа (CharSequence s) | Връща true или false след съпоставяне на последователността от char стойност. |
8 | присъединяване на статичен низ (разделител на CharSequence, елементи на CharSequence...) | Връща съединен низ. |
9 | статично присъединяване към низ (разделител на CharSequence, итерируеми елементи) | Връща съединен низ. |
10 | булево равно (друг обект) | Той проверява равенството на низа с дадения обект. |
единадесет | булево isEmpty() | Проверява дали низът е празен. |
12 | String concat (String str) | Той свързва посочения низ. |
13 | Замяна на низ (char old, char new) | Той замества всички срещания на указаната стойност char. |
14 | Замяна на низ (CharSequence стар, CharSequence нов) | Той замества всички срещания на указаната CharSequence. |
петнадесет | статичен низ е равно на IgnoreCase (друг низ) | Той сравнява друг низ. Не проверява малки и малки букви. |
16 | Разделяне на низ [] (регулярен израз на низ) | Той връща разделен низ, съответстващ на регулярен израз. |
17 | String[] split(String regex, int limit) | Той връща разделен низ, съответстващ на регулярен израз и лимит. |
18 | String intern() | Връща интерниран низ. |
19 | int indexOf(int ch) | Връща посочения индекс на стойност char. |
двадесет | int indexOf(int ch, int fromIndex) | Връща посочения индекс на стойност char, започващ с дадения индекс. |
двадесет и едно | int indexOf(подниз от низ) | Връща посочения индекс на подниз. |
22 | int indexOf(подниз от низ, int fromIndex) | Връща посочения индекс на подниз, започващ с дадения индекс. |
23 | Низ toLowerCase() | Връща низ с малки букви. |
24 | Низ в малки букви (локал l) | Връща низ с малки букви, използвайки указан локал. |
25 | Низ toUpperCase() | Връща низ с главни букви. |
26 | Низ в главни букви (локал l) | Връща низ с главни букви, използвайки указан локал. |
27 | String trim() | Той премахва началните и крайните интервали на този низ. |
28 | статичен низ valueOf(int стойност) | Той преобразува даден тип в низ. Това е претоварен метод. |
Знаеш ли?
- Защо String обектите са неизменни?
- Как да създадете неизменен клас?
- Какво е низов константен пул?
- Какъв код се пише от компилатора, ако свържете произволен низ чрез + (оператор за конкатенация на низ)?
- Каква е разликата между StringBuffer и StringBuilder клас?
Какво ще научим при работа с низове?
- Понятие за низ
- Неизменен низ
- Сравнение на низове
- Конкатенация на низове
- Концепция за подниз
- Методи на клас низове и тяхното използване
- Клас StringBuffer
- Клас StringBuilder
- Създаване на неизменен клас
- toString() метод
- Клас StringTokenizer