Манипулирование строками в Java с ПРИМЕРОМ

⚡ Умное резюме

Манипулирование строками в Java Он использует класс String, который представляет текст в виде массива символов, и предоставляет встроенные методы, такие как length, indexOf, charAt, compareTo, contains, replace и case conversion, для эффективной обработки и преобразования текста.

  • 🔤 Основы игры на струнных инструментах: A Java String — это массив символов, управляемый классом String, который наследует класс Object.
  • Конкатенация: Для объединения строк используйте метод concat() или оператор + для получения одного и того же результата.
  • 📏 Методы проверки: Функции length(), indexOf() и charAt() возвращают размер, индекс символа и символ в позиции.
  • 🔎 Сравнение и поиск: Функции compareTo(), compareToIgnoreCase() и contains() сравнивают строки и проверяют наличие последовательностей.
  • 🇧🇷 Трансформация: Функции replace(), toLowerCase() и toUpperCase() изменяют содержимое строки и регистр букв.
  • 🔒 Неизменность: Строки являются окончательными и неизменяемыми; JVM хранит их в пуле строковых констант.

Манипулирование строками в Java

Что такое строки в Java?

Строка в буквальном смысле представляет собой последовательность символов. Эй, ты сказал символы, разве это не примитивный тип данных в Java. Да, так что в техническом плане базовый Java Строка — это, по сути, массив символов.

Итак, моя приведенная выше строка «ROSE» можно представить следующим образом –

Java строка

Зачем использовать строки?

Одной из основных функций современной информатики является обработка человеческого языка.

Подобно тому, как числа важны в математике, языковые символы важны для понимания смысла и принятия решений. Хотя это может быть неочевидно для пользователей компьютеров, компьютеры обрабатывают язык в фоновом режиме так же точно и аккуратно, как калькулятор. Диалоги справки предоставляют инструкции. Меню предлагают варианты выбора. А на экранах отображаются статусы, ошибки и изменения языка в реальном времени.

Java программист, одним из ваших основных инструментов для хранения и обработки языка будет класс String.

Примеры строкового синтаксиса

Теперь перейдём к синтаксису, ведь нам нужно это написать именно так. Java код не так ли.

Строка представляет собой массив символов, представленный как:

//String is an array of characters
char[] arrSample = {'R', 'O', 'S', 'E'};
String strSample_1 = new String (arrSample);

С технической точки зрения строка в приведенном выше примере определяется следующим образом:

= new (argument);

Теперь мы всегда не можем записывать строки как массивы; следовательно, мы можем определить строку в Java следующим образом:

//Representation of String
String strSample_2 = "ROSE";

В техническом плане вышеизложенное представляется так:

= ;

Класс String Java продолжается Класс объекта.

Конкатенация строк:

Конкатенация — это объединение двух или более строк.

Посмотрите на картинку ниже-

Примеры строкового синтаксиса

У нас есть две строки str1 = «Рок» и str2 = «Звезда».

Если мы сложим эти две строки, мы должны получить результат str3= «RockStar».

Ознакомьтесь с приведенным ниже фрагментом кода, в котором объясняются два метода конкатенации строк.

Сначала используется «CONCAT” класса String, а второй использует арифметический оператор “+”. Оба результата дают один и тот же результат

public class Sample_String{
  public static void main(String[] args){
//String Concatenation
String str1 = "Rock";
String str2 = "Star";
//Method 1 : Using concat
String str3 = str1.concat(str2);
System.out.println(str3);
//Method 2 : Using "+" operator
String str4 = str1 + str2;
System.out.println(str4);
}
}

Ожидаемый результат:

RockStar
RockStar

Важнo Java строковые методы:

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

Давайте спросим Java Задайте классу String несколько вопросов и посмотрите, сможет ли он на них ответить:

Строковый метод «Длина»

Как вы определите длину данной строки? Я предоставил метод, который называется «длина». Используйте его против строки, которую вам нужно найти, чтобы найти длину.

public class Sample_String{
  public static void main(String[] args){  //Our sample string for this tutorial
  String str_Sample = "RockStar";
  //Length of a String
  System.out.println("Length of String: " + str_Sample.length());}}

Ожидаемый результат:

Length of String: 8

Строковый метод indexOf

Если я знаю длину, как мне узнать, какой символ находится в какой позиции? Короче говоря, как мне найти индекс персонажа?

Ты себе ответил, дружище, есть метод indexOf, который поможет тебе определить местоположение конкретного персонажа, который ты укажешь.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));
//Index of a given character
System.out.println("Index of character 'S': " + str_Sample.indexOf('S'));}}

Ожидаемый результат:

Character at position 5: t
Index of character 'S': 4

Строковый метод «charAt»

Как и в предыдущем вопросе, учитывая индекс, как мне узнать персонажа в этом месте?

Опять все просто!! Используйте метод «charAt» и укажите индекс, символ которого вам нужно найти.

public class Sample_String{
  public static void main(String[] args){//Character at position
String str_Sample = "RockStar";
System.out.println("Character at position 5: " + str_Sample.charAt(5));}}

Ожидаемый результат:

Character at position 5: t

Строковый метод «CompareTo»

Хочу ли я проверить, равна ли строка, сгенерированная каким-либо методом, чему-то, что я хочу проверить? Как сравнить две строки?

Используйте метод «compareTo» и укажите строку, которую вы хотите сравнить.

Используйте «compareToIgnoreCase», если вы не хотите, чтобы результат был чувствителен к регистру.

Результат будет иметь значение 0, если строка аргумента равна этой строке; значение меньше 0, если эта строка лексикографически меньше строкового аргумента; и значение больше 0, если эта строка лексикографически больше строкового аргумента.

public class Sample_String{
  public static void main(String[] args){//Compare to a String
String str_Sample = "RockStar";
  System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
  //Compare to - Ignore case
  System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}

Ожидаемый результат:

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

Строковый метод «Содержать»

Я частично знаю, что должна была содержать строка. Как мне проверить, содержит ли строка указанную мной последовательность символов?

Используйте метод «содержит» и укажите символы, которые нужно проверить.

Returns правда тогда и только тогда, когда эта строка содержит указанную последовательность значений char.

public class Sample_String{
  public static void main(String[] args){  //Check if String contains a sequence
String str_Sample = "RockStar";
  System.out.println("Contains sequence 'tar': " + str_Sample.contains("tar"));}}

Ожидаемый результат:

Contains sequence 'tar': true

Строковый метод «endsWith»

Как проверить, заканчивается ли строка определенным суффиксом? Опять ты ответил. Используйте метод «endsWith» и укажите суффикс в аргументах.

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

public class Sample_String{
  public static void main(String[] args){  //Check if ends with a particular sequence
String str_Sample = "RockStar";
  System.out.println("EndsWith character 'r': " + str_Sample.endsWith("r"));}}

Ожидаемый результат:

EndsWith character 'r': true

Строка «replaceAll» и метод «replaceFirst»

Я хочу изменить свою строку в нескольких местах и ​​заменить несколько частей строки?

Java Строковые методы replace, replaceAll и replaceFirst. Вы можете указать в аргументах часть строки, которую хотите заменить, и заменяющую строку.

public class Sample_String{
  public static void main(String[] args){//Replace Rock with the word Duke
String str_Sample = "RockStar";
System.out.println("Replace 'Rock' with 'Duke': " + str_Sample.replace("Rock", "Duke"));}}

Ожидаемый результат:

Replace 'Rock' with 'Duke': DukeStar

строка Java «в нижний регистр» и Java Метод «верхний регистр»

Я хочу, чтобы вся моя строка отображалась в нижнем или верхнем регистре?

Просто используйте методы «toLowercase()» или «ToUpperCase()» для строк, которые необходимо преобразовать.

public class Sample_String{
  public static void main(String[] args){//Convert to LowerCase
String str_Sample = "RockStar";
System.out.println("Convert to LowerCase: " + str_Sample.toLowerCase());
//Convert to UpperCase
System.out.println("Convert to UpperCase: " + str_Sample.toUpperCase());}}

Ожидаемый результат:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Важные моменты, чтобы отметить:

  • String — это финальный класс; т.е. однажды созданное значение не может быть изменено. Таким образом, объекты String называются неизменяемыми.
  • Java Виртуальная машина (JVM) создает область памяти специально для строк, называемую Пул строковых констант. Вот почему String можно инициализировать без ключевого слова «новое».
  • Класс String подпадает под java.lang.Иерархия строк. Но нет необходимости импортировать этот класс. Java платформа предоставляет их автоматически.
  • строка ссылку можно переопределить, но это не удалит содержимое; то есть, если

Строка h1 = «привет»;

h1 = «привет» + «мир»;

тогда строка «привет» не удаляется. Он просто теряет свою ручку.

  • Несколько ссылок можно использовать для той же строки, но это будет происходить в том же месте; то есть, если

Строка h1 = «привет»;

Строка h2 = «привет»;

Строка h3 = «привет»;

тогда в памяти создается только один пул для строки «привет» с 3 ссылками — h1,h2,h3

  • Если номер указан в ” “ Затем это становится строкой, уже не число. Это означает, что если

String S1 = «Число: «+ «123» + «456»;

Система.внешний.println(S1);

затем он напечатает: Число: 123456.

Если инициализация такая:

String S1 = «Число: «+(123+456);

System.out.println(S1);

тогда он напечатает: Число: 579.

Это все, что касается струн!

Часто задаваемые вопросы (FAQ)

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

In JavaОператор `==` сравнивает ссылки на объекты, а `equals()` сравнивает фактическое символьное содержимое двух строк. Используйте `equals()`, чтобы проверить, имеют ли две строки одинаковое значение.

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

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

Да. Инструменты искусственного интеллекта могут писать. Java Код, который очищает, форматирует и преобразует текст, используя такие методы, как замена, обрезка и изменение регистра, а затем объясняет каждый шаг для обучающихся.

Подведем итог этой публикации следующим образом: