logo

Java String

в 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 интерфейси .

Низ в Java

Интерфейс CharSequence

Интерфейсът CharSequence се използва за представяне на последователността от знаци. низ, StringBuffer и StringBuilder класовете го изпълняват. Това означава, че можем да създаваме низове в Java, като използваме тези три класа.

CharSequence в Java

Java String е неизменен, което означава, че не може да бъде променян. Всеки път, когато променим който и да е низ, се създава нов екземпляр. За променливи низове можете да използвате класове StringBuffer и StringBuilder.

Ще обсъдим неизменния низ по-късно. Нека първо разберем какво е String в Java и как да създадем String обекта.

Какво е String в Java?

Най-общо String е поредица от знаци. Но в Java низът е обект, който представлява последователност от знаци. Класът java.lang.String се използва за създаване на низов обект.

Как да създадете низов обект?

Има два начина за създаване на String обект:

  1. Чрез низов литерал
  2. По нова ключова дума

1) Низов литерал

Java String literal се създава с помощта на двойни кавички. Например:

 String s='welcome'; 

Всеки път, когато създавате низов литерал, JVM първо проверява „пула с постоянни низове“. Ако низът вече съществува в пула, се връща препратка към събрания екземпляр. Ако низът не съществува в пула, се създава нов екземпляр на низ и се поставя в пула. Например:

 String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance 

Java String

В горния пример ще бъде създаден само един обект. Първо, 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