Strängmanipulation i Java med EXEMPEL

⚡ Smart sammanfattning

Strängmanipulation i Java förlitar sig på klassen String, som representerar text som en array av tecken, och tillhandahåller inbyggda metoder som length, indexOf, charAt, compareTo, contains, replace och case-konvertering för att bearbeta och transformera text effektivt.

  • 🔤 Grunderna i strängar: A Java String är en array av tecken som hanteras av String-klassen, som utökar Object.
  • ➕ Sammanfogning: Koppla ihop strängar med hjälp av metoden concat() eller operatorn + för samma resultat.
  • 📏 Inspektionsmetoder: length(), indexOf() och charAt() returnerar storlek, teckenindex och tecken vid en position.
  • 🔎 Jämförelse och sökning: compareTo(), compareToIgnoreCase() och contains() jämför strängar och kontrollerar sekvenser.
  • ✏️ Omvandling: replace(), toLowerCase() och toUpperCase() ändrar stränginnehåll och versaler/gemener.
  • 🔒 Oföränderlighet: Strängar är slutgiltiga och oföränderliga; JVM lagrar dem i strängkonstantpoolen.

Strängmanipulation i Java

Vad är strängar i Java?

En sträng i bokstavliga termer är en serie tecken. Hej, sa du tecken, är det inte en primitiv datainmatning Java. Ja, så i tekniska termer, det grundläggande Java Sträng är i grunden en rad tecken.

Så min ovanstående sträng av "ROSE” kan representeras som följande –

Java Sträng

Varför använda Strings?

En av de primära funktionerna för modern datavetenskap är att bearbeta mänskligt språk.

På samma sätt som siffror är viktiga för matematik är språksymboler viktiga för betydelse och beslutsfattande. Även om de kanske inte är synliga för datoranvändare bearbetar datorer språk i bakgrunden lika exakt och noggrant som en miniräknare. Hjälpdialogrutor ger instruktioner. Menyer ger alternativ. Och datadisplayer visar status, fel och språkändringar i realtid.

Som en Java programmerare, ett av dina huvudverktyg för att lagra och bearbeta språk kommer att vara String-klassen.

Exempel på strängsyntax

Nu ska vi komma till lite syntax, vi måste ju trots allt skriva detta i Java kod är det inte.

Sträng är en rad tecken, representerade som:

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

I tekniska termer definieras strängen enligt följande i exemplet ovan-

= new (argument);

Nu kan vi inte alltid skriva våra strängar som arrayer; därför kan vi definiera strängen i Java enligt följande:

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

I tekniska termer representeras ovanstående som:

= ;

Ocuco-landskapet Strängklass Java sträcker d Objektklass.

Strängsammansättning:

Sammankoppling är sammanfogning av två eller flera strängar.

Ta en titt på bilden nedan-

Exempel på strängsyntax

Vi har två strängar str1 = "Rock" och str2 = "Star"

Om vi ​​lägger ihop dessa två strängar bör vi få resultatet som str3= “RockStar”.

Kolla kodavsnittet nedan, så förklarar det de två metoderna för att utföra strängsammankoppling.

Först använder man "concat"-metoden för String-klassen och andra använder den aritmetiska "+"-operatorn. Båda resulterar i samma utdata

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);
}
}

Förväntad produktion:

RockStar
RockStar

Viktigt Java strängmetoder:

Java strängmetoder

Låt oss fråga Java Ställ några frågor och se om den kan svara på dem:

Sträng "Längd" metod

Hur kommer du att bestämma längden på en given sträng? Jag har tillhandahållit en metod som kallas "längd". Använd den mot strängen du behöver för att hitta längden.

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());}}

Förväntad produktion:

Length of String: 8

Sträng "indexOf"-metoden

Om jag vet längden, hur skulle jag hitta vilken karaktär som är i vilken position? Kort sagt, hur hittar jag indexet för en karaktär?

Du svarade dig själv, kompis, det finns en "indexOf"-metod som hjälper dig att bestämma platsen för en specifik karaktär som du anger.

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'));}}

Förväntad produktion:

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

Sträng "charAt" metod

I likhet med ovanstående fråga, med tanke på indexet, hur vet jag karaktären på den platsen?

Enkelt igen!! Använd metoden "charAt" och ange indexet vars karaktär du behöver hitta.

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));}}

Förväntad produktion:

Character at position 5: t

Sträng "CompareTo"-metoden

Vill jag kontrollera om strängen som genererades av någon metod är lika med något som jag vill verifiera med? Hur jämför jag två strängar?

Använd metoden "compareTo" och ange strängen som du vill jämföra.

Använd "compareToIgnoreCase" om du inte vill att resultatet ska vara skiftlägeskänsligt.

Resultatet kommer att ha värdet 0 om argumentsträngen är lika med denna sträng; ett värde mindre än 0 om denna sträng är lexikografiskt mindre än strängargumentet; och ett värde större än 0 om denna sträng är lexikografiskt större än strängargumentet.

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"));}}

Förväntad produktion:

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

Sträng "Contain"-metoden

Jag vet delvis vad strängen borde ha innehållit, hur bekräftar jag om strängen innehåller en sekvens av tecken som jag anger?

Använd metoden "innehåller” och ange de tecken du behöver kontrollera.

Returer sann om och endast om denna sträng innehåller den angivna sekvensen av char-värden.

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"));}}

Förväntad produktion:

Contains sequence 'tar': true

Sträng "endsWith"-metoden

Hur bekräftar jag om en sträng slutar med ett visst suffix? Återigen svarade du på det. Använd metoden "endsWith" och ange suffixet i argumenten.

Returer sann om teckensekvensen som representeras av argumentet är ett suffix av teckensekvensen som representeras av detta objekt.

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"));}}

Förväntad produktion:

EndsWith character 'r': true

Sträng "replaceAll" & "replaceFirst" metod

Jag vill modifiera min sträng på flera ställen och ersätta flera delar av strängen?

Java String Replace, replaceAll och replaceFirst metoder. Du kan ange den del av strängen du vill ersätta och ersättningssträngen i argumenten.

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"));}}

Förväntad produktion:

Replace 'Rock' with 'Duke': DukeStar

Sträng Java "små bokstäver" & Java Metod med "stora bokstäver".

Jag vill att hela min sträng ska visas med gemener eller versaler?

Använd bara metoderna "toLowercase()" eller "ToUpperCase()" mot strängarna som behöver konverteras.

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());}}

Förväntad produktion:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Viktiga punkter att notera:

  • String är en finalklass; dvs när värdet väl har skapats kan det inte ändras. Stringobjekt kallas alltså oföränderliga.
  • Ocuco-landskapet Java Virtual Machine(JVM) skapar en minnesplats speciellt för anropade strängar String Constant Pool. Det är därför String kan initieras utan "nytt" nyckelord.
  • Strängklass faller under java.lang.String hierarki. Men det finns inget behov av att importera den här klassen. Java plattformen tillhandahåller dem automatiskt.
  • Sträng referens kan åsidosättas men det tar inte bort innehållet; dvs om

Sträng h1 = "hej";

h1 = "hej"+"värld";

då raderas inte "hej" String. Den tappar bara greppet.

  • Flera referenser kan användas för samma sträng men det kommer förekommer på samma plats; dvs om

Sträng h1 = "hej";

Sträng h2 = "hej";

Sträng h3 = "hej";

då skapas bara en pool för String "hej" i minnet med 3 referenser-h1,h2,h3

  • Om en nummer anges i " " sedan det blir ett snöre, inte ett nummer längre. Det betyder om

String S1 =”Numret är: “+ “123”+”456″;

Systemet.ut.println(S1);

sedan kommer det att skrivas ut: Numret är: 123456

Om initieringen är så här:

String S1 = "Numret är: "+(123+456);

System.out.println(S1);

sedan kommer det att skrivas ut: Numret är:579

Det är allt till Strings!

Vanliga frågor

Java Strängar är oföränderliga för säkerhet, trådsäkerhet och prestanda. Eftersom värdet inte kan ändras efter skapandet kan JVM säkert cachelagra strängar i String Constant Pool och dela referenser.

In Java, == jämför objektreferenser, medan equals() jämför det faktiska teckeninnehållet i två strängar. Använd equals() för att kontrollera om två strängar har samma värde.

String är oföränderlig, medan StringBuilder och StringBuffer är föränderliga. SträngBuffer är trådsäker och synkroniserad; StringBuilder är snabbare men inte trådsäker, vilket gör den idealisk för strängmanipulation med en enda tråd.

AI-kodningsassistenter kan generera stränghanteringskod, föreslå rätt metoder, förklara reguljära uttryck och upptäcka buggar som nullpekare eller indexfel i strängoperationer.

Ja. AI-verktyg kan skriva Java kod som rensar, formaterar och omvandlar text med metoder som ersättning, trimning och konvertering av skiftläge och sedan förklarar varje steg för eleverna.

Sammanfatta detta inlägg med: