Струнныя метады Java



ява Радок

У мове праграмавання Java радок - гэта не што іншае, як паслядоўнасць знакаў. Гэта найбольш распаўсюджаны аб'ект. Клас Java String мае мноства метадаў, якія выкарыстоўваюцца для розных маніпуляцый. Ён нязменны, гэта значыць яго значэнне нельга змяніць. Радок эквівалентны масіву сімвалаў.

Стварэнне радка на Java

Мы можам стварыць радок, выкарыстоўваючы 2 розныя метады:

  • Выкарыстанне радкавага літаралу
  • Выкарыстанне новага ключавога слова

Стварыце радок, выкарыстоўваючы радкавы літарал

Гэта самы непасрэдны спосаб стварэння радок на Java. Мы можам стварыць радок, заключыўшы значэнне ў двукоссі. Тут зменная "значэнне" тыпу String змяшчае радок, названую як "мова Java"

String value = "Java language";

Калі мы ствараем радкавы літарал, JVM спачатку правярае ў "пуле канстантных пулаў", ці існуе радок. Калі ён не існуе, JVM стварае новы экземпляр радка, інакш будзе вернута толькі спасылка на зводны экземпляр. Напрыклад, у прыведзеным ніжэй выпадку абодва радковыя аб'екты маюць аднолькавае значэнне. Такім чынам, створаны толькі 1 аб'ект (г.зн. s1), і s2 будзе мець спасылку на s1. Гэта азначае, што незалежна ад таго, колькі калі-небудзь радковых зменных мы ствараем з аднолькавым значэннем, у пуле пастаянных радкоў будзе створаны толькі 1 асобнік.

«Пастаянны пул радкоў» - гэта не што іншае, як спецыяльная памяць, якая змяшчае радковыя аб'екты.

String s1 = "Java language"; 
String s2 = "Java language";

Радок у Java

Стварэнне радка з выкарыстаннем новага ключавога слова

Калі мы хочам мець 2 розныя аб'екты, якія маюць аднолькавае значэнне радка, мы ствараем радок з дапамогай новы ключавое слова, як апісана ніжэй. У гэтым выпадку JVM стварае 2 розныя радковыя аб'екты ў памяці кучы

String s1 = new String("Java");
String s2 = new String("Java");

Радок у Java

Струнныя метады Java

Клас java.lang.String падтрымлівае розныя метады, якія выкарыстоўваюцца для розных маніпуляцый з радкамі, як апісана ніжэй:

Метадапісаннепараметры
char charAt (індэкс int)Вяртае сімвал па зададзеным індэксе ўваходнай радкіindex - значэнне індэкса радка
int codePointAt (індэкс int)Вяртае значэнне unicode сімвала ў зададзеным індэксеindex - значэнне індэкса радка
int codePointBefore (індэкс int)Вяртае значэнне unicode знака, які прысутнічае перад указаным індэксамindex - значэнне індэкса радка
int compareTo (радок іншага радка)Параўноўвае 2 радкі на аснове значэння unicode сімвалаў і вяртае адмоўнае значэнне, калі яно папярэднічае радку аргумента, у адваротным выпадку вяртае дадатнае. Вяртаецца значэнне 0, калі абедзве радкі роўныяanotherstring - радок для параўнання з аб'ектам string
int compareToIgnoreCase (радок іншы радок)Падобны на метад compareTo, за выключэннем таго, што ён ігнаруе выпадак.anotherstring - радок для параўнання з аб'ектам string
Радок concat (радок str)Аб'ядноўвае два радковыя значэнніstr - радок, якая аб'ядноўваецца са значэннем радкавага аб'екта
лагічны ўтрымлівае (CharSequence c)Правярае, ці ўтрымлівае радок указаную паслядоўнасць сімвалаў, і вяртае true, калі яна ёсцьc - Паслядоўнасць знакаў, якую трэба знайсці ў радку
boolean contentEquals (CharSequence c)Правярае, ці ўтрымлівае радок дакладную паслядоўнасць знакаў, і вяртае true, калі яна ёсцьc - Паслядоўнасць знакаў, якую трэба знайсці ў радку
boolean contentEquals (StringBuffer sb)Правярае, ці ўтрымлівае радок зададзены буфер радкоў, і пры наяўнасці вяртае truesb - Змест буфера радка
лагічныя канцыWith (суфікс радка)Правярае, ці радок заканчваецца названым суфіксам, і вяртае true, калі ён прысутнічаесуфікс - суфікс для праверкі ў радку
лагічнае роўна (аб'ект аб'ект)Правярае падабенства радкавага аб'екта з перададзеным аб'ектам і вяртае true, калі роўнаobj - аб'ект для параўнання
boolean equalsIgnoreCase (радок str)Параўноўвае два радкі незалежна, ігнаруючы рэгістр, і вяртае ісціну, калі абедзве радкі роўныяstr - радок для параўнання
int indexOf (int ch)Вяртае індэкс першага ўваходжання ўказанага сімвала юнікода ў радкуch - значэнне Unicode персанажа
int indexOf (радок str)Вяртае індэкс першага ўваходжання названай падрадка ў радокstr - значэнне падрадка, якое прысутнічае ў радку
лагічны isBlank ()Вяртае true, калі радок пусты альбо ўтрымлівае толькі пустыя прабелы
лагічны isEmpty ()Вяртае true, калі радок пустая (г.зн. даўжыня 0)
int lastindexOf (int ch)Вяртае індэкс апошняга ўваходжання ўказанага сімвала юнікода ў радкуch - значэнне Unicode персанажа
int lastindexOf (радок str)Вяртае індэкс апошняга ўваходжання названай падрадка ў радокstr - значэнне падрадка, якое прысутнічае ў радку
даўжыня int ()Вяртае даўжыню радка
лагічныя супадзенні (String regex)Вяртае true, калі радок супадае з указаным рэгулярным выразамregex - рэгулярны выраз, які трэба праверыць
Паўтарэнне радка (падлік нумароў)Злучае радок на аснове падлікуcount - колькасць разоў для аб'яднання ўваходнай радкі
Замена радка (char oldchar, char newchar)Вяртае новы радок, замяняючы ўсе выпадкі знака новымoldchar - сімвал для замены
newchar - сімвал, які трэба замяніць
Радок [] раскол (радок redgexp)Разбівае радок на аснове рэгулярнага выразу. Ён вяртае масіўregexp - падзельнік для падзелу радка
Радок [] раскол (String regexp, int limit)Разбівае радок на аснове рэгулярнага выразу і колькасці раз, калі яго трэба ўжыцьregexp - падзельнік для падзелу радка
мяжа - колькасць разоў, калі шаблон павінен быць ужыты
boolean startWith (прэфікс радка)Правярае, калі дадзены радок пачынаецца з указанага прэфікса. Вяртае дакладна, калі прысутнічаепрэфікс - прэфікс для праверкі ў радку
boolean startWith (прэфікс радка, int занадтаffset)Правярае, ці пачынаецца дадзены радок з указанага прэфікса на аснове параметра tooffset. Вяртае true, калі ён прысутнічаепрэфікс - прэфікс для праверкі ў радку
tooffset - індэкс, з якога трэба пачынаць пошук
Радок радка ()Вяртае радок з выдаленымі прабеламі, як вядучымі, так і канчаючымі
Радок радокLeading ()Вяртае падрадок радка з выдаленымі усімі прабеламі
String stripTrailing ()Вяртае падрадок радка з выдаленымі усімі прабеламі
Падпарадкаванне CharSequence (int startIndex, int endIndex)Вяртае сімвалічную паслядоўнасць радка на аснове пачатковага і канцавага індэксаstartIndex - індэкс, з якога трэба атрымаць падрадок
endIndex - індэкс, да якога неабходна атрымаць падрадок
Радок subString (int startIndex)Вяртае падрадок радка на аснове пачатковага індэксаstartIndex - індэкс, з якога трэба атрымаць падрадок
Радок subString (int startIndex, int endIndex)Вяртае падрадок радка на аснове пачатковага і канцавага індэксаstartIndex - індэкс, з якога трэба атрымаць падрадок
endIndex - індэкс, да якога неабходна атрымаць падрадок
char [] у CharArray ()Пераўтварае радок у масіў сімвалаў
Радок toLowerCase ()Пераўтварае ўсе сімвалы ў радку ў малую
Радок toLowerCase (лакальная мова)Пераўтварае ўсе сімвалы ў радку ў малую ў залежнасці ад правілаў мовылакаль - правілы лакаліі, якія будуць прымяняцца
Радок toString ()Вяртае сам радок
Радок toUpperCase ()Пераўтварае ўсе сімвалы ў радку ў вялікія
Радок toUpperCase (лакальная мова)Пераўтварае ўсе сімвалы ў радку ў верхнюю рэгістр на аснове правілаў моўнай мовылакаль - правілы лакаліі, якія будуць прымяняцца
Абрэзка радкоў ()Вяртае радок з выдаленымі усімі прабеламі, якія стаяць заднім і канчаючым
String formatString (String format, Object ... args)Вяртае адфарматаваны радок на аснове фармату і аргументаўformat - спецыфікатар фармату
args - аргументы, на якія спасылаецца спецыфікатар фармату
Далучэнне да радка (раздзяляльнік CharSequence, элементы CharSequence ...)Далучае элементы паслядоўнасці сімвалаў пры дапамозе раздзяляльнікараздзяляльнік - раздзяляльнік для далучэння
elements - элементы радка, якія трэба далучыць
String valueOf (Boolean b)Вяртае радкавае прадстаўленне лагічнага аргумента. Калі true перададзена, вяртае trueb - лагічнае значэнне як праўдзівае альбо ілжывае
Значэнне радка (char c)Вяртае радкавае прадстаўленне аргумента сімвалаз - характар
String valueOf (char [] дадзеныя)Вяртае радкавае прадстаўленне аргумента масіва сімвалаўdata - масіў сімвалаў
Значэнне радка (двайное d)Вяртае радкавае прадстаўленне двайнога аргументаd - двайное значэнне
String valueOf (float f)Вяртае радкавае прадстаўленне аргумента floatf - плаваючае значэнне
Значэнне радка (int i)Вяртае радковае прадстаўленне цэлага ліку аргументаi - цэлае значэнне
Значэнне радка IO (доўгі л)Вяртае радкавае прадстаўленне доўгага аргументаl - доўгае значэнне
String valueOf (аб'ект аб'екта)Вяртае радкавае прадстаўленне аргумента аб'ектаobj - аб'ект
String valueOf (char [] data, int offset, int count)Вяртае радкавае прадстаўленне канкрэтнага аргумента масіва сімвалаў падрадка на аснове зрушэння і падлікуdata - масіў сімвалаў
зрушэнне - пачатак Індэкса
count - даўжыня падрадка

Прыклад: праграма Java для стварэння радка з сімвалаў масіва

У прыведзеным ніжэй прыкладзе мы пераўтворым масіў сімвалаў у радок у Java з выкарыстаннем новага ключавога слова.

public class StringDemo1 {

  public static void main(String[] args) {
    char[] c = {'j','a','v','a'};
    String s = new String(c);
    System.out.println(s);
    
  }

}
Output:
java

Прыклад: Выкарыстанне метадаў length (), charAt () і indexOf ()

У прыведзеным ніжэй прыкладзе паказана, як атрымаць сімвал з пэўным індэксам, атрымаць даўжыню радка і атрымаць індэкс пэўнага сімвала.

public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("The character at index 6 is : " + s1.charAt(6));
    System.out.println("The length of the input string is : " + s1.length());
    System.out.println("The index of letter 'v' is : " + s1.indexOf('v'));
  }

}
Output:
The character at index 6 is : u
The length of the input string is : 13
The index of letter 'v' is : 2

Прыклад: Выкарыстанне compareTo (), contentEquals () і змяшчае ()

У гэтым прыкладзе паказана параўнанне 2 радкоў у Java

  1. compareTo () вяртае тут дадатнае цэлае лік, бо ўваходны радок пераймае радок аргумента.
  2. compareToIgnoreCase () вяртае 0, бо абедзве радкі роўныя незалежна ад выпадку.
  3. contains () вяртае true, бо ўваходная радок змяшчае радок аргумента
  4. contentEquals () вяртае false, бо ўваходны радок не ўтрымлівае дакладны радок аргумента.
public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("Comparison of input string with argument is : " + s1.compareTo("C++"));
    System.out.println("Comparison of input string with argument ignoring case is : " + s1.compareToIgnoreCase("JAVA TUTORIAL"));
    System.out.println("Output of contains method: " + s1.contains("tutorial"));
    System.out.println("Output of contentEquals method: " + s1.contentEquals("Java"));
    }
}
Output:
Comparison of input string with argument is : 7
Comparison of input string with argument ignoring case is : 0
Output of contains method: true
Output of contentEquals method: false

Прыклад: Выкарыстанне equals ()

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

Трэці выхад ілжывы, бо абодва змесціва розныя.

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    String s2 = "Java Tutorial";
    String s3 = "java tutorial";
    String s4 = "Tutorial cup";
    System.out.println(s1.equals(s2));
    System.out.println(s1.equals(s3));
    System.out.println(s1.equals(s4));
  }

}
Output:
false
true
false

Прыклад: Канкатэнацыя радкоў

Мы можам аб'яднаць 2 радкі ў Java, выкарыстоўваючы concat () метад Java Струнны клас. "+" Таксама выкарыстоўваецца для аб'яднання 2 і больш радкоў, якія звычайна выкарыстоўваюцца ў заявах для друку. Пры аб'яднанні 2 радкоў прабел паміж радкамі не ўваходзіць. У прыведзеным ніжэй прыкладзе радок s3 змяшчае аб'яднаныя значэнні s1 і s2, якія выкарыстоўваюцца разам з новым радком у заяве print.

Мы таксама можам аб'яднаць 2 радкі ў Java, выкарыстоўваючы метад join (). Гэта аб'яднае словы, перададзеныя ў аргуменце, з указаным раздзяляльнікам.

public class StringConcat {

  public static void main(String[] args) {
    String s1 = "Hello,";
    String s2 = "how are you";
    String s3 = s1.concat(s2);
    System.out.println(s3 + " today");
    System.out.println(s1.join(",", "welcome","to","tutorialcup"));
  }

}
Output:
Hello,how are you today
welcome,to,tutorialcup

Прыклад: Праграма Java для пераўтварэння радка паміж вялікімі і малымі літарамі

public class StringCase {

  public static void main(String[] args) {
    String s1 = "Welcome to tutorialcup";
    System.out.println("Convert to lower case: " + s1.toLowerCase());
    System.out.println("Convert to upper case: " + s1.toUpperCase());

  }

}
Output:
Convert to lower case: welcome to tutorialcup
Convert to upper case: WELCOME TO TUTORIALCUP

Прыклад: Выкарыстанне падрадка ў Java

Мы можам атрымаць частку радка ў Java, выкарыстоўваючы падрадкі метад. Значэнне індэкса пачынаецца з 0.

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    System.out.println(s1.substring(3));
    System.out.println(s1.substring(1, 10));
  }

}
Output:
a tutorial
ava tutor

Прыклад: Выкарыстанне падзелу і замены

Раздзяленне - яшчэ адзін найбольш часта выкарыстоўваны метад радка ў Java. У гэтым прыкладзе мы спачатку падзяляем ўваходны радок, выкарыстоўваючы падзельнік "". Такім чынам, гэта друкуе кожнае слова асобна. Далей мы падзяляем на аснове раздзяляльніка, але ўказваем ліміт як 2, што азначае, што ён дзеліцца толькі на два значэнні радкавага масіва.

У 1-м прыкладзе замены мы замяняем асобны сімвал. У наступным мы заменім паслядоўнасць сімвалаў.

public class StringDemo4 {

  public static void main(String[] args) {
    String str1 = "Welcome to java programming";
    System.out.println("Split output using delimiter:");
    //Split using only delimiter
    String[] arrval = str1.split(" ");
    for(int i=0;i<arrval.length;i++) {
      System.out.println(arrval[i]);
    }
    System.out.println("\nSplit output using delimiter and limit:");
    //Split using delimiter and limit
    String[] arrval2 = str1.split(" ", 2);
    for(int i=0;i<arrval2.length;i++) {
      System.out.println(arrval2[i]);
    }
    
    System.out.println("\nReplace output with character:");
    //Replace character
    String str2 = str1.replace('j', 'J');
    System.out.println(str2);
    System.out.println("\nReplace output with character sequence:");
    String str3 = str1.replace("java", "javascript");
    System.out.println(str3);
  }

}


Output:
Split output using delimiter:
Welcome
to
java
programming

Split output using delimiter and limit:
Welcome
to java programming

Replace output with character:
Welcome to Java programming

Replace output with character sequence:
Welcome to javascript programming

Прыклад: радок фарматавання Java

Мы можам адфарматаваць любы тып дадзеных у радок з выкарыстаннем метаду фарматавання. Тут мы выкарыстоўваем у якасці прыкладаў радок ("% s"), float (% f ") і лагічны ("% b ").

public class StringFormat {

  public static void main(String[] args) {
    String str = "Java";
    String formatstring1 = String.format("Programming language is %s",str);
    String formatstring2 = String.format("Float value is %f", 55.6789);
    String formatstring3 = String.format("Boolean value is %b", true);
    System.out.println(formatstring1);
    System.out.println(formatstring2);
    System.out.println(formatstring3);
  }

}
Output:
Programming language is Java
Float value is 55.678900
Boolean value is true

заключэнне

У гэтым уроку вы даведаліся пра String у Java, розныя спосабы яго стварэння і розныя радкавыя метады разам з прыкладамі.

Спасылка