Какво трябва да знаете за използването на низове в Java

Какво трябва да знаете за използването на низове в Java

След като започнете да изучавате Java, класът String ще привлече вниманието ви, благодарение на своите уникални свойства.





Можете да създавате и манипулирате низове в Java по -лесно от други езици. Това е така, защото класът String предлага различни функции.





Въз основа на тези функции има няколко метода за генериране и редактиране на низове в зависимост от вашите предпочитания и нужди. По същия начин много ще зависи от приложението ви и къде трябва да се използват низове.





По какво се различават Java низовете?

Ако преди това сте работили с език C, знаете, че низовете в C са масив от символи (знаци). От друга страна, низовете на Java са неизменни и съдържат Unicode символи.

влезте в playstation network ps4

Една от ключовите характеристики, които правят низовете в Java уникални, е конкатенацията. Просто използвайте оператора за добавяне +, за да присъедините два или повече низове. Това е нещо, което не можете да направите с други Java обекти, като например Точка или Кръг .



Също така, както бе споменато по -горе, Java Strings са неизменни, т.е. не можете да ги променяте. Например методи като toUpperCase () и toLowerCase () генерирайте изцяло нов низ, вместо да правите промени в съществуващото съдържание на низ. Сега вашият код ще върне този новосъздаден низ.

Свързани: Как да манипулирате текст в PHP с тези функции





Друга област, в която низовете са различни, е когато става въпрос за използване на нулеви знаци за прекратяване на низове на езици като C. В Java низовете са обекти, поддържани от символни масиви. Ако искате да прочетете съдържанието на вашия низ по начина, по който символните масиви ги представят, използвайки toCharArray () методът ще свърши работа.

Сравняването на низове в Java също е по -удобно, отколкото в други езици за програмиране. Вместо да пишете дълъг блок код за сравняване на низове, можете да използвате равно на() метод за сравняване на два или повече низове, използвани във всяка програма. Това се дължи главно на това, че в Java равно на методът се заменя от класа String, което прави сравнението на низове като част от тортата.





По подобен начин търсенето в поднизове в Java също е безпроблемно. Докато използвате регулярни изрази или методи като lastIndexOf () и индекс на(), можете да търсите сегменти от низове и да връщате стойности след идентифициране на съвпадение. Можете също да използвате регулярни изрази за подрязване и разделяне на различни низове и да ги използвате индивидуално за широк спектър от приложения във всяка програма.

Как се съхраняват низовете в паметта?

Сега, когато знаете какво прави низовете в Java различни и полезни, нека разгледаме класа String. Ако знаете нещо за управлението на паметта в Java, значи трябва да сте се справили с двете му ключови обекти: купчина и стек.

Стекът се използва за изпълнение на процеси и операции след извикване от програма на Java, докато купчината съхранява съдържание - необходимо за ефективно стартиране и изпълнение на кода. И така, как е уместно управлението на паметта в случай на низове?

Това е така, защото класът String и низовите литерали в Java получават различно третиране. Това показва, че низовите литерали са присвоени на уникално място за съхранение в паметта на купчината, наречено String Constant Pool. Следователно, когато използвате низови литерали за създаване на низови обекти в Java, String Constant Pool ги съхранява.

Напротив, когато използвате нов ключова дума за създаване на низови обекти, Java ще ги третира като всеки друг обект и ще ги изпраща в купчината за съхранение.

Пример за низови литерали

Сега, когато знаете достатъчно за низовите обекти, нека да разгледаме пример за низови литерали:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Тук низовият литерал създаде обекта String със съдържание Hello World от MUO. Java ще изпрати този обект в String Constant Pool.

Използване на новата ключова дума

Можете също да използвате нов ключова дума за генериране на String обекти.

Низовият обект на низа himuo със съдържание Hello World от MUO е генериран от низов литерал и ще бъде изпратен до String Constant Pool. По същия начин низовите обекти също могат да бъдат създадени с помощта на новата ключова дума, както следва:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

Горният пример използва нов ключова дума за създаване на низов обект. Както беше обяснено по -рано, те се изпращат в купчината, където се съхраняват с други променливи и обекти, чакащи да бъдат изпълнени от програмата.

Вече трябва да сте любопитни за String Constant Pool и с право. Той разпределя пуловото пространство към обекти въз основа на съдържанието на низовия обект. След като String Constant Pool получи обекти, той ги проверява, за да провери дали два обекта съдържат абсолютно едно и също съдържание.

Могат ли два низови обекта да съхраняват едно и също съдържание?

Когато низов литерал се използва за създаване на нов обект, Java Virtual Machine (JVM) преглежда съдържанието на обекта и оценява дали то вече съществува в пула. Когато обект съдържа съдържание, което вече присъства в пула, референцията на обекта се връща, без да се създава новият обект. Ако трябва да създадете новия обект, трябва да се уверите, че съдържанието е различно и уникално.

Ако обаче използвате нов ключова дума за създаване на нов низ, тя ще бъде обработена по различен начин. Когато използвате нов ключова дума за създаване на нов низ, той ще бъде генериран, независимо дали съдържа същото съдържание като съществуващия низ.

Това показва, че на два съществуващи низови обекта, съхранявани в паметта на купчината, е позволено да водят до едно и също съдържание; това е различно от низовите обекти, съхранявани в String Constant Pool. Можете също да докажете това с оператора ==; връща true, ако се сравнят два обекта със същия физически адрес.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Сега можете лесно да разберете низовете в Java

В тази статия научихте как низовете в Java са различни, начини за използване на низове в Java, управление на паметта на низове в Java и други важни подробности за начина на работа на низовете. За да проверите разбирането си, защо не напишете Java програма, която да обединява два низа?

Дял Дял Туит електронна поща Изучаване на Python? Ето как да манипулирате низове

Използването и манипулирането на низове в Python може да изглежда трудно, но е измамно просто.

Прочетете Напред
Свързани теми
  • Програмиране
  • Java
За автора Усман Гани(4 статии са публикувани)

Usman е маркетинг на съдържание, който е помогнал на няколко бизнеса с органичен растеж в цифрови платформи. Той харесва както програмирането, така и писането, което означава, че техническото писане е нещо, което много му харесва. Когато не работи, Usman обича да прекарва времето си в гледане на телевизионни предавания, след крикет и четене за анализ на данни.

Още от Usman Ghani

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате