Java Манипулиране на низове с ПРИМЕР
Какво съдържат низовете Java?
Низът в буквален смисъл е поредица от знаци. Хей, казахте ли символи, не е ли примитивен тип данни в Java. Да, така че в техническо отношение, основното Java Низът е основно масив от знаци.
Така че моят горен низ от „ROSE” може да се представи по следния начин –
Защо да използвате Strings?
Една от основните функции на съвременната компютърна наука е обработката на човешкия език.
Подобно на това как числата са важни за математиката, езиковите символи са важни за значението и вземането на решения. Въпреки че може да не се вижда от компютърните потребители, компютрите обработват езика във фонов режим толкова прецизно и точно, колкото калкулатор. Диалоговите прозорци за помощ предоставят инструкции. Менютата предоставят възможности за избор. А дисплеите с данни показват състояния, грешки и промени в езика в реално време.
Като 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";
От техническа гледна точка горното е представено като:
= ;
- Струнен клас Java простира - Клас обект.
Конкатенация на низове:
Конкатенацията е свързване на два или повече низа.
Разгледайте снимката по-долу -
Имаме два низа str1 = „Rock“ и str2 = „Star“
Ако съберем тези два низа, трябва да имаме резултат като 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
важно Java низови методи:
Да попитаме Java String class няколко въпроса и вижте дали може да им отговори:
Метод „Дължина“ на низ
Как ще определите дължината на даден низ? Предоставих метод, наречен „дължина“. Използвайте го срещу низа, от който се нуждаете, за да намерите дължината.
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” и посочете низа, който искате да сравните.
Използвайте “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
Метод „Съдържане на низ“.
Отчасти знам какво трябваше да съдържа низът, как да потвърдя дали низът съдържа поредица от символи, които посочвам?
Използвайте метода "съдържа” и посочете знаците, които трябва да проверите.
Връщане вярно ако и само ако този низ съдържа указаната последователност от 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“ и посочете суфикса в аргументите.
Връщане вярно ако последователността от знаци, представена от аргумента, е суфикс на последователността от знаци, представена от този обект.
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 Методи String 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 обектите се наричат immutable.
- - Java Виртуалната машина (JVM) създава място в паметта, специално за извиканите низове String ConstantPool. Ето защо String може да се инициализира без ключова дума „нова“.
- String клас попада под java.lang.Йерархия на низове. Но няма нужда да импортирате този клас. Java платформата ги предоставя автоматично.
- Низ препратката може да бъде заменена, но това не изтрива съдържанието; т.е., ако
Низ h1 = „здравей“;
h1 = “здравей”+”свят”;
тогава низът „hello“ не се изтрива. Просто губи дръжката си.
- Множество препратки може да се използва за същия низ, но ще се случват на едно и също място; т.е., ако
Низ h1 = „здравей“;
Низ h2 = „здравей“;
Низ h3 = „здравей“;
тогава в паметта се създава само един пул за String „hello“ с 3 препратки-h1,h2,h3
- Ако номерът е цитиран в ” “ тогава то става низ, вече не е число. Това означава, че ако
Низ S1 =”Числото е: “+ “123”+”456”;
Система.от.println(S1);
след това ще отпечата: Числото е: 123456
Ако инициализацията е така:
Низ S1 = „Числото е: „+(123+456);
System.out.println(S1);
тогава ще отпечата: Числото е:579
Това е всичко за Strings!