Маніпулювання рядками Java: функції та методи з ПРИКЛАДОМ

Зміст:

Anonim

Що таке струни?

Рядок у дослівному вираженні - це ряд символів. Гей, ти говорив символи, хіба це не примітивний тип даних на Java. Так, у технічному плані базовий Java String - це в основному масив символів.

Тож мій наведений вище рядок “ ROSE ” може бути представлений наступним чином -

У цьому підручнику ви дізнаєтесь-

  • Що таке струни?
  • Навіщо використовувати рядки?
  • Приклади синтаксису рядків
  • Конкатенація рядків
  • Важливі рядкові методи Java

Навіщо використовувати рядки?

Однією з основних функцій сучасної інформатики є обробка людської мови.

Подібно до того, як цифри важливі для математики, мовні символи важливі для значення та прийняття рішень. Незважаючи на те, що він може бути не видимий для користувачів комп’ютерів, комп’ютери обробляють мову у фоновому режимі так само точно і точно, як калькулятор. Діалоги довідки містять інструкції. Меню пропонує вибір. А на дисплеях даних відображаються статуси, помилки та зміни мови в режимі реального часу.

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

Приклади синтаксису рядків

Тепер, давайте перейдемо до деякого синтаксису, врешті-решт, нам потрібно написати це в коді Java, чи не так.

Рядок - це масив символів, представлений у вигляді:

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

У технічному відношенні Рядок визначається наступним чином у наведеному вище прикладі -

= new (argument);

Зараз ми завжди не можемо писати наші рядки як масиви; отже, ми можемо визначити рядок у Java наступним чином:

//Representation of StringString strSample_2 = "ROSE";

У технічному плані вищезазначене представляється як:

= ;

Рядок класу Java розширює на клас об'єктів.

Конкатенація рядків:

Конкатенація - це об’єднання двох або більше рядків.

Погляньте на малюнок нижче -

У нас є два рядки str1 = “Rock” і str2 = “Star”

Якщо ми складемо ці два рядки, ми повинні отримати результат як str3 = “RockStar”.

Перевірте наведений нижче фрагмент коду, і він пояснює два способи виконання конкатенації рядків.

Перший використовує метод “ concat ” класу String, а другий - арифметичний оператор “+”. Обидва результати дають однакові результати

відкритий клас Sample_String {public static void main (String [] args) {// Конкатенація рядківРядок str1 = "Рок";Рядок str2 = "Зірка";// Спосіб 1: Використання concatРядок str3 = str1.concat (str2);System.out.println (str3);// Спосіб 2: Використання оператора "+"Рядок str4 = str1 + str2;System.out.println (str4);}}

Важливі методи рядків Java:

Давайте задамо класу Java String кілька запитань і подивимось, чи може він відповісти на них;)

Метод "довжина" рядка

Як ви визначите довжину даного рядка? Я запропонував метод, який називається "довжина". Використовуйте його проти рядка, який вам потрібен, щоб знайти довжину.

відкритий клас Sample_String {public static void main (String [] args) {// Наш зразок рядка для цього підручникаРядок str_Sample = "RockStar";// Довжина рядкаSystem.out.println ("Довжина рядка: + str_Sample.length ());}}

вихід:

Length of String: 8

Рядок "indexOf" Метод

Якщо я знаю довжину, як би я знайшов, який персонаж знаходиться в якій позиції? Коротше кажучи, як я знайду індекс символу?

Ви відповіли самі, приятелю, існує метод “indexOf”, який допоможе вам визначити місце знаходження конкретного персонажа, якого ви вказали.

відкритий клас Sample_String {public static void main (String [] args) {// Символ у позиціїРядок str_Sample = "RockStar";System.out.println ("Символ у позиції 5: + str_Sample.charAt (5));// Індекс даного символуSystem.out.println ("Індекс символу 'S': + str_Sample.indexOf ('S'));}}

Вихід:

Character at position 5: tIndex of character 'S': 4

Рядковий метод "charAt"

Подібно до вищезазначеного питання, враховуючи індекс, як я можу дізнатись персонажа в цьому місці?

Знову простий !! Використовуйте метод “charAt” та надайте індекс, символ якого вам потрібно знайти.

відкритий клас Sample_String {public static void main (String [] args) {// Символ у позиціїРядок str_Sample = "RockStar";System.out.println ("Символ у позиції 5: + str_Sample.charAt (5));}}

Вихід:

Character at position 5: t

Рядок Метод "CompareTo"

Чи хочу я перевірити, чи рядок, створений яким-небудь методом, дорівнює чомусь, що я хочу перевірити? Як порівняти два рядки?

Використовуйте метод “compareTo” та вкажіть рядок, який ви хочете порівняти.

Використовуйте “compareToIgnoreCase”, якщо ви не хочете, щоб результат чутливий до регістру.

Результат матиме значення 0, якщо рядок аргументу дорівнює цьому рядку; значення менше 0, якщо цей рядок лексикографічно менший за аргумент рядка; і значення більше 0, якщо цей рядок лексикографічно більший за аргумент рядка.

відкритий клас Sample_String {public static void main (String [] args) {// Порівняти з рядкомРядок str_Sample = "RockStar";System.out.println ("Порівняти з" ROCKSTAR ": + str_Sample.compareTo ("rockstar"));// Порівняти з - Ігнорувати регістрSystem.out.println ("Порівняти з" ROCKSTAR "- випадок проігнорований: + str_Sample.compareToIgnoreCase ("ROCKSTAR"));}}

Вихід:

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

Рядок "Містить" метод

Я частково знаю, що повинен містити рядок, як мені підтвердити, якщо рядок містить послідовність символів, яку я вказую?

Використовуйте метод “містить” і вкажіть символи, які потрібно перевірити.

Повертає true тоді і лише тоді, коли цей рядок містить зазначену послідовність значень символів.
відкритий клас Sample_String {public static void main (String [] args) {// Перевірте, чи містить String послідовністьРядок str_Sample = "RockStar";System.out.println ("Містить послідовність 'tar': + str_Sample.contains ("tar"));}}

Вихід:

Contains sequence 'tar': true

Рядок "ENDWith" Метод

Як мені підтвердити, якщо рядок закінчується певним суфіксом? Ви знову відповіли. Скористайтеся методом “ENDWith” і в аргументах вкажіть суфікс.

Повертає true, якщо послідовність символів, представлена ​​аргументом, є суфіксом послідовності символів, представленої цим об'єктом.
відкритий клас Sample_String {public static void main (String [] args) {// Перевірте, чи закінчується певна послідовністьРядок str_Sample = "RockStar";System.out.println ("Закінчується символом 'r': + str_Sample.endsWith ("r"));}}

Вихід:

EndsWith character 'r': true

Рядок "replaceAll" і "replaceFirst" Метод

Я хочу змінити свій рядок у кількох місцях і замінити кілька частин рядка?

Рядок Java Замінити, замінитиAll і replaceFirst методи. В аргументах можна вказати частину рядка, яку потрібно замінити, та рядок заміни.

відкритий клас Sample_String {public static void main (String [] args) {// Замінити Рока словом DukeРядок str_Sample = "RockStar";System.out.println ("Замінити" Rock "на" Duke ": + str_Sample.replace ("Rock", "Duke"));}}

Вихід:

Replace 'Rock' with 'Duke': DukeStar

Рядок Java "tolowercase" & Java "touppercase" Метод

Я хочу, щоб весь мій рядок відображався з малої чи великої літери?

Просто використовуйте методи “toLowercase ()” або “ToUpperCase ()” проти рядків, які потрібно перетворити.

відкритий клас Sample_String {public static void main (String [] args) {// Перетворити на LowerCaseРядок str_Sample = "RockStar";System.out.println ("Перетворити в LowerCase: + str_Sample.toLowerCase ());// Перетворення в UpperCaseSystem.out.println ("Перетворити на UpperCase: + str_Sample.toUpperCase ());}}

Вихід:

Convert to LowerCase: rockstarConvert to UpperCase: ROCKSTAR

Важливі зауваження:

  • Струна - це Заключний клас ; тобто після створення значення не можна змінювати. Таким чином String об'єкти називаються незмінними.
  • Віртуальна машина Java (JVM) створює місце в пам'яті, особливо для рядків, що називається String Constant Pool . Тому String можна ініціалізувати без ключового слова new.
  • Клас рядків підпадає під ієрархію java.lang.String . Але немає необхідності імпортувати цей клас. Платформа Java надає їх автоматично.
  • Посилання на рядок можна замінити, але це не видаляє вміст ; тобто якщо

Рядок h1 = "привіт";

h1 = "привіт" + "світ";

тоді рядок "привіт" не видаляється. Він просто втрачає свою ручку.

  • Для одного рядка можна використовувати кілька посилань, але це відбуватиметься в одному і тому ж місці ; тобто якщо

Рядок h1 = "привіт";

Рядок h2 = "привіт";

Рядок h3 = "привіт";

тоді в пам'яті створюється лише один пул для рядка “привіт” з 3 посиланнями-h1, h2, h3

  • Якщо число вказано в "", тоді воно стає рядком , а не числом. Це означає, що якщо

Рядок S1 = "Число: + "123" + "456";

Система. вихід .println (S1);

тоді надрукується: Номер: 123456

Якщо ініціалізація така:

Рядок S1 = "Число: + (123 + 456);

Система. вихід .println (S1);

тоді він надрукує: Номер: 579 Це все для рядків!