Hvad du behøver at vide om brug af strenge i Java

Hvad du behøver at vide om brug af strenge i Java

Når du begynder at lære Java, fanger String -klassen din opmærksomhed takket være dens unikke egenskaber.





Du kan lettere oprette og manipulere strenge i Java end andre sprog. Det er fordi String -klassen tilbyder forskellige funktioner.





Baseret på disse funktioner er der flere metoder til at generere og redigere strenge afhængigt af dine præferencer og behov. Tilsvarende afhænger meget af din applikation, og hvor der skal bruges strenge.





Hvordan er Java -strenge forskellige?

Hvis du tidligere har arbejdet med C -sprog, ved du, at strenge i C er en række tegn (tegn). På den anden side er Java -strenge uforanderlige og indeholder Unicode -tegn.

har denne telefon en lommelygte

En af de vigtigste funktioner, der gør strenge i Java unik, er sammenkædning. Brug bare tilføjelsesoperatoren + til at forbinde to eller flere strenge. Dette er noget, du ikke kan gøre med andre Java -objekter, som f.eks Punkt eller Cirkel .



Som tidligere nævnt er Java -strenge også uforanderlige, dvs. du kan ikke ændre dem. For eksempel metoder som toUpperCase () og toLowerCase () generere en helt ny streng, i stedet for at foretage ændringer i det eksisterende strengindhold. Nu returnerer din kode denne nyoprettede streng.

Relateret: Sådan manipuleres tekst i PHP med disse funktioner





Et andet område, hvor strenge er forskellige, er, når det kommer til at bruge nultegn til at afslutte strenge på sprog som C. I Java er strenge objekter understøttet af tegnfiler. Hvis du ønsker at læse din strings indhold på den måde, karakterarrays repræsenterer dem, ved hjælp af toCharArray () metode vil gøre jobbet.

Det er også mere bekvemt at sammenligne strenge i Java end på andre programmeringssprog. I stedet for at skrive en lang blok kode til sammenligning af strenge, kan du bruge lige med() metode til at sammenligne to eller flere strenge, der bruges i ethvert program. Dette er hovedsageligt fordi, i Java, lige med metode tilsidesættes af klassen String, hvilket gør strengsammenligning til et stykke kage.





På en lignende note er søgning inden for substrater i Java også problemfri. Mens du bruger regulære udtryk eller metoder som lastIndexOf () og indeks af(), du kan søge i segmenter af strenge og returnere værdier, når et match er identificeret. Du kan også bruge almindelige udtryk til at trimme og opdele forskellige strenge og bruge dem individuelt til en lang række anvendelser i ethvert program.

Hvordan gemmes strenge i hukommelsen?

Nu hvor du ved, hvad der gør strenge i Java forskellige og gavnlige, lad os undersøge String -klassen. Hvis du ved noget eller to om hukommelsesstyring i Java, skal du have beskæftiget dig med dens to nøgleenheder: bunke og stak.

Stakken bruges til at udføre processer og operationer efter at være blevet kaldt af et Java -program, hvorimod bunke gemmer indhold - nødvendigt for at køre og eksekvere kode effektivt. Så hvordan er hukommelsesstyring relevant i tilfælde af strenge?

Det er fordi String -klassen og strenglitteralerne i Java modtager forskellig behandling. Dette indikerer, at strengliteraler tildeles unikt lagerplads i bunkehukommelsen, kaldet strengkoncentrationspuljen. Derfor, når du bruger strenglitteraler til at oprette strengobjekter i Java, gemmer String Constant Pool dem.

Tværtimod, når du bruger ny nøgleord for at oprette strengobjekter, behandler Java dem ligesom alle andre objekter og sender dem til bunken til opbevaring.

String Literals Eksempel

Nu hvor du ved nok om strengobjekter, lad os gå igennem et eksempel på strenglitteraler:


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

Her skabte strengen bogstaveligt String -objektet med indhold Hello World fra MUO. Java sender dette objekt til String Constant Pool.

Brug af det nye søgeord

Du kan også bruge ny nøgleord til at generere strengobjekter.

Strengeobjektet i strengen himuo med indhold Hello World fra MUO er genereret af en streng bogstavelig og vil blive sendt til String Constant Pool. På samme måde kan strengobjekter også oprettes ved hjælp af det nye søgeord som følger:


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

Ovenstående eksempel bruger ny nøgleord for at oprette et strengobjekt. Som forklaret tidligere sendes de til bunken, hvor de gemmes med andre variabler og objekter, der venter på at blive udført af programmet.

På nuværende tidspunkt må du være nysgerrig efter String Constant Pool, og med rette. Det tildeler poolplads til objekter baseret på strengobjektets indhold. Efter at Streng Constant Pool modtager objekter, kontrolleres det for at kontrollere, om to objekter indeholder nøjagtig det samme indhold.

Kan to strengobjekter gemme samme indhold?

Når en streng bogstav bruges til at oprette et nyt objekt, gennemgår Java Virtual Machine (JVM) objektets indhold og vurderer, om det allerede findes i puljen. Når et objekt indeholder indhold, der allerede er til stede i puljen, returneres objektets reference uden at oprette det nye objekt. Hvis du skal oprette det nye objekt, skal du sørge for, at indholdet er tydeligt og unikt.

Men hvis du bruger ny nøgleord for at oprette en ny streng, vil den blive behandlet anderledes. Når du bruger ny nøgleord for at oprette en ny streng, genereres den, uanset om den indeholder det samme indhold som den eksisterende streng.

Dette indikerer, at to eksisterende strengeobjekter, der er gemt i bunkehukommelsen, har lov til at indeholde det samme indhold; dette er forskelligt fra strengobjekter, der er gemt i strengkonstantpoolen. Du kan også bevise dette med == operatoren; det returnerer sandt, hvis to objekter med den samme fysiske adresse sammenlignes.


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

Nu kan du nemt forstå strenge i Java

I denne artikel lærte du, hvordan strenge i Java er forskellige, måder at bruge strenge på Java, hukommelsesstyring af strenge i Java og andre vigtige detaljer om, hvordan strenge fungerer. For at teste din forståelse, hvorfor ikke skrive et Java -program for at sammenkæde to strenge?

Del Del Tweet E -mail Lærer du Python? Her er hvordan man manipulerer strenge

Brug og manipulation af strenge i Python kan virke svært, men det er vildledende ligetil.

Læs Næste
Relaterede emner
  • Programmering
  • Java
Om forfatteren Usman Ghani(4 artikler udgivet)

Usman er en indholdsmarkedsfører, der har hjulpet flere virksomheder med organisk vækst på digitale platforme. Han kan lide både at programmere og skrive, hvilket betyder, at teknisk skrivning er noget, han nyder meget. Når han ikke arbejder, nyder Usman at bruge tid på at se tv -shows, følge cricket og læse om dataanalyse.

Mere fra Usman Ghani

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere