Java — это универсальная, параллельная, объектно-ориентированная, основанная на классах среда выполнения (JRE), которая состоит из JVM. В этом блоге мы будем обсуждать новую концепцию, Строка Java. Строка — это последовательность символов. Но в Java строка — это объект, представляющий последовательность символов. Класс java.lang.String используется для создания строкового объекта.

Существует два способа создания объекта String:

  1. Строковый литерал: Строковый литерал Java создается с использованием двойных кавычек.
    Например: String s="Добро пожаловать";
  2. По новому ключевому слову: строка Java создается с использованием ключевого слова «новый».
    Например: String s=new String («Добро пожаловать»);
    Он создает два объекта (в пуле строк и в куче) и одну ссылочную переменную, где переменная «s» будет ссылаться на объект в куче.

Теперь давайте разберемся с концепцией пула строк Java.

Пул строк Java:

Пул строк Java относится к набору строк, которые хранятся в куче памяти. При этом всякий раз, когда создается новый объект, пул строк сначала проверяет, присутствует ли этот объект в пуле или нет. Если он присутствует, в переменную возвращается та же ссылка, иначе в пуле строк будет создан новый объект, и будет возвращена соответствующая ссылка. Обратитесь к схематическому представлению для лучшего понимания:

На приведенном выше изображении две строки создаются с использованием литералов, то есть «Apple» и «Mango». Теперь, когда создается третья строка со значением «Apple», вместо создания нового объекта возвращается уже существующая ссылка на объект. Вот почему появился пул Java String.

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

Строка str="abc";
эквивалентна:

char data[] = {‘a’, ‘b’, ‘c’};
String str = new String(data);

Давайте теперь посмотрим на некоторые из встроенных методов в классе String.

Строковые методы Java

Длина строки Java():

Метод Java String length() сообщает длину строки. Он возвращает общее количество символов, присутствующих в строке. Например:

public class Example{
public static void main(String args[]{ 
String s1="hello"; 
String s2="whatsup"; 
System.out.println("string length is: "+s1.length());  
System.out.println("string length is: "+s2.length()); 
}}

Здесь функция String length() вернет длину 5 для s1 и 7 для s2 соответственно.

Сравнение строк Java():

Метод Java String compareTo() сравнивает заданную строку с текущей строкой. Это метод интерфейса Comparable, реализованный классом String. Не волнуйтесь, мы будем изучать интерфейсы String позже. Он либо возвращает положительное число, либо отрицательное число, либо 0. Например:

public class CompareToExample{ 
public static void main(String args[]){ 
String s1="hello";
String s2="hello"; 
String s3="hemlo"; 
String s4="flag";
System.out.println(s1.compareTo(s2)); // 0 because both are equal
System.out.println(s1.compareTo(s3)); //-1 because "l" is only one time lower than "m" 
System.out.println(s1.compareTo(s4)); // 2 because "h" is 2 times greater than "f"
}}

Эта программа показывает сравнение между различными строками. Замечено, что
если s1 > s2, возвращает положительное число
если s1 ‹ s2, возвращает отрицательное число
если s1 == s2, возвращает 0

Concat() строки Java:

Метод Java String concat() объединяет определенную строку в конце другой строки и в конечном итоге возвращает объединенную строку. Это похоже на добавление еще одной строки. Например:

public class ConcatExample{
public static void main(String args[]){
String s1="hello";
s1=s1.concat("how are you");
System.out.println(s1);
}}

Приведенный выше код возвращает «привет, как дела».

Строка Java пуста ():

Этот метод проверяет, содержит ли строка что-либо или нет. Если строка java пуста, она возвращает true, иначе false. Например:

public class IsEmptyExample{ 
public static void main(String args[]){ 
String s1=""; 
String s2="hello"; 
System.out.println(s1.isEmpty());      // true
System.out.println(s2.isEmpty());      // false
}}

Обрезка строки Java ():

Метод обрезки строк Java удаляет начальные и конечные пробелы. Он проверяет значение Unicode символа пробела (' ') до и после строки. Если он существует, то удаляет пробелы и возвращает пропущенную строку. Например:

public class StringTrimExample{  
public static void main(String args[]){  
String s1="  hello   ";  
System.out.println(s1+"how are you");        // without trim()  
System.out.println(s1.trim()+"how are you"); // with trim()  
}}

В приведенном выше коде первый оператор печати напечатает «привет, как дела», а второй оператор напечатает «привет, как дела», используя функцию trim().

Строка Java toLowerCase():

Метод java string toLowerCase() преобразует все символы строки в нижний регистр. Например:

public class StringLowerExample{
public static void main(String args[]){
String s1="HELLO HOW Are You?”;
String s1lower=s1.toLowerCase();
System.out.println(s1lower);}
}

Приведенный выше код вернет «привет, как дела».

Строка Java toUpper():

Метод Java String toUpperCase() преобразует все символы строки в верхний регистр. Например:

public class StringUpperExample{  
public static void main(String args[]){  
String s1="hello how are you";  
String s1upper=s1.toUpperCase();  
System.out.println(s1upper);  
}}

Приведенный выше код вернет «ПРИВЕТ, КАК ТЫ».

Строка Java ValueOf():

Этот метод преобразует различные типы значений в строку. Используя этот метод, вы можете преобразовать int в строку, long в строку, Boolean в строку, символ в строку, float в строку, double в строку, объект в строку и массив символов в строку. Сигнатура или синтаксис строкового метода valueOf() приведена ниже: public static String valueOf(boolean b)

общедоступная статическая строка valueOf (char c)

общедоступная статическая строка valueOf (char [] c)

общедоступная статическая строка valueOf (int i)

общедоступная статическая строка valueOf (long l)

общедоступная статическая строка valueOf (с плавающей запятой f)

общедоступная статическая строка valueOf (двойной d)

общедоступная статическая строка valueOf (объект o)

Давайте разберемся с этим на программном примере:

public class StringValueOfExample{
public static void main(String args[]){
int value=20; 
String s1=String.valueOf(value); 
System.out.println(s1+17);       //concatenating string with 10 
}}

В приведенном выше коде он объединяет строку Java и дает результат — 2017.

Замена строки Java():

Метод Java String replace() возвращает строку, заменяющую все старые символы или CharSequence новыми символами. Есть два способа заменить методы в строке Java.

public class ReplaceExample1{
public static void main(String args[]){ 
String s1="hello how are you"; 
String replaceString=s1.replace('h','t'); 
System.out.println(replaceString); }}

В приведенном выше коде он заменит все вхождения «h» на «t». Вывод приведенного выше кода будет «скажите, что вы». Давайте посмотрим на другой тип использования метода replace в java-строке:

Метод замены строки Java (цель CharSequence, замена CharSequence):

public class ReplaceExample2{ 
public static void main(String args[]){ 
String s1="Hey, welcome to Edureka"; 
String replaceString=s1.replace("Edureka","Brainforce"); 
System.out.println(replaceString); 
}}

В приведенном выше коде он заменит все вхождения «Edureka» на «Brainforce». Таким образом, вывод будет «Привет, добро пожаловать в Brainforce».

Строка Java содержит ():

Метод строки Java содержит() ищет последовательность символов в строке. Если последовательности символов найдены, то возвращается true, в противном случае возвращается false. Например:

class ContainsExample{ 
public static void main(String args[]){ 
String name=" hello how are you doing?"; 
System.out.println(name.contains("how are you"));  // returns true
System.out.println(name.contains("hello"));        // returns true  
System.out.println(name.contains("fine"));         // returns false  
}}

В приведенном выше коде первые два оператора вернут true, поскольку они соответствуют строке, тогда как второй оператор печати вернет false, поскольку символы отсутствуют в строке.

Строка Java равна():

Метод Java String equals() сравнивает две заданные строки на основе содержимого строки, то есть представления Java String. Если все символы совпадают, он возвращает true, иначе он возвращает false. Например:

public class EqualsExample{ 
public static void main(String args[]){ 
String s1="hello"; 
String s2="hello"; 
String s3="hi";
System.out.println(s1.equalsIgnoreCase(s2));   // returns true
System.out.println(s1.equalsIgnoreCase(s3));   // returns false
}
}

Строка Java равна IgnoreCase():

Этот метод сравнивает две строки на основе содержимого, но не проверяет регистр, как метод equals(). В этом методе, если символы совпадают, он возвращает true, иначе false. Например:

public class EqualsIgnoreCaseExample{ 
public static void main(String args[]){ 
String s1="hello"; 
String s2="HELLO"; 
String s3="hi";
System.out.println(s1.equalsIgnoreCase(s2));   // returns true
System.out.println(s1.equalsIgnoreCase(s3));   // returns false
}}

В приведенном выше коде первый оператор вернет true, потому что содержимое одинаково независимо от регистра. Затем во втором операторе печати будет возвращено значение false, поскольку содержимое соответствующих строк не совпадает.

Строка Java toCharArray():

Этот метод преобразует строку в массив символов, т.е. сначала он вычисляет длину заданной строки Java, включая пробелы, а затем создает массив типа char с тем же содержимым. Например:

StringToCharArrayExample{
public static void main(String args[]){
String s1="Welcome to Edureka";
char[] ch=s1.toCharArray();
for(int i=0;i<ch.length;i++){
System.out.print(ch[i]);
}}}

Приведенный выше код вернет «Добро пожаловать в Edureka».

Java StringGetBytes():

Метод строки Java getBytes() возвращает последовательность байтов или, можно сказать, массив байтов строки. Например:

public class StringGetBytesExample {
public static void main(String args[]){ 
String s1="ABC";
byte[] b=s1.getBytes(); 
for(int i=0;i<b.length;i++){ 
System.out.println(b[i]);
}
}}

В приведенном выше коде он вернет значение 65,66,67.

Строка Java пуста ():

Этот метод проверяет, является ли строка пустой или нет. Если длина строки равна 0, она возвращает true, иначе false. Например:

public class IsEmptyExample{
public static void main(String args[]) { 
String s1=""; 
String s2="hello";
System.out.prinltn(s1.isEmpty());     // returns true
System.out.prinltn(s2.isEmpty());     // returns false
}}

В приведенном выше коде первый оператор печати вернет значение true, поскольку он ничего не содержит, а второй оператор печати вернет значение false.

Строка Java заканчивается():

Метод Java String endsWith() проверяет, заканчивается ли эта строка заданным суффиксом. Если он возвращается с данным суффиксом, он возвращает true, иначе возвращает false. Например:

public class EndsWithExample{ 
public static void main(String args[]) {
String s1="hello how are you”; 
System.out.println(s1.endsWith("u"));       // returns true
System.out.println(s1.endsWith("you"));     // returns true   
System.out.println(s1.endsWith("how"));     // returns false
}}

Это не конец. Есть и другие методы Java String, которые помогут упростить код.

Двигаясь дальше, класс Java String реализует три интерфейса, а именно — Serializable, Comparable и CharSequence.

Поскольку Java String является неизменной и окончательной, новая строка создается всякий раз, когда мы выполняем манипуляции со строками. Поскольку манипуляции со строками требуют больших ресурсов, Java предоставляет два служебных класса: StringBuffer и StringBuilder.
Давайте поймем разницу между этими двумя служебными классами:

1. StringBuffer и StringBuilder — изменяемые классы. Операции StringBuffer потокобезопасны и синхронизированы, тогда как операции StringBuilder не являются потокобезопасными.

2. StringBuffer следует использовать, когда несколько потоков работают с одним и тем же String и StringBuilder в однопоточной среде.

3. Производительность StringBuilder выше по сравнению с StringBuffer из-за отсутствия накладных расходов на синхронизацию.

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

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

Обратите внимание на другие статьи из этой серии, в которых объясняются различные другие аспекты Java.

1. Объектно-ориентированное программирование

2. Наследование в Java

3. Полиморфизм в Java

4. Абстракция в Java

5. Учебник по Java

6. Ява-массив

7. Коллекции Java

8. Java-потоки

9. Введение в сервлеты Java

10. Учебник по сервлетам и JSP

11. Обработка исключений в Java

12. Расширенное руководство по Java

13. Вопросы для собеседования по Java

14. Java-программы

15. Котлин против Явы

16. Внедрение зависимостей с использованием Spring Boot

17. Сравнимая в Java

18. 10 лучших Java-фреймворков

19. Java Reflection API

20. 30 лучших шаблонов в Java

21. Основная шпаргалка по Java

22. Программирование сокетов на Java

23. Шпаргалка по Java ООП

24. Аннотации в Java

25. Проект системы управления библиотекой на Java

26. Деревья на Яве

27. Машинное обучение в Java

28. Лучшие структуры данных и алгоритмы в Java

29. Навыки Java-разработчика

30. 55 лучших вопросов для интервью с сервлетами

31. Лучшие Java-проекты

32. Шпаргалка по строкам Java

33. Вложенный класс в Java

34. Вопросы и ответы из интервью с Java Collections

35. Как справиться с взаимоблокировкой в ​​Java?

36. 50 лучших вопросов на собеседовании по коллекциям Java, которые вам нужно знать

37. Что такое концепция пула строк в Java?

38. В чем разница между C, C++ и Java?

39. Палиндром в Java — Как проверить число или строку?

40. Главные вопросы и ответы на собеседованиях по MVC, которые вам нужно знать

41. 10 лучших приложений языка программирования Java

42. Тупик в Java

43. Квадратный корень в Java

44. Приведение типов в Java

45. Операторы в Java и ее типы

46. ​​Деструктор в Java

47. Двоичный поиск в Java

48. Архитектура MVC на Java

49. Hibernate Interview Вопросы и ответы

Первоначально опубликовано на www.edureka.co 8 мая 2017 г.