Stringmanipulation i Java med EKSEMPEL

โšก Smart opsummering

Stringmanipulation i Java er afhรฆngig af String-klassen, som reprรฆsenterer tekst som et array af tegn, og tilbyder indbyggede metoder som length, indexOf, charAt, compareTo, contains, replace og case conversion til at behandle og transformere tekst effektivt.

  • ๐Ÿ”ค Grundlรฆggende om strenge: A Java String er et array af tegn, der administreres af String-klassen, som udvider Object.
  • โž• Sammenkรฆdning: Forbind strenge ved hjรฆlp af concat()-metoden eller +-operatoren for at opnรฅ det samme resultat.
  • ๐Ÿ“ Inspektionsmetoder: length(), indexOf() og charAt() returnerer stรธrrelse, tegnindeks og tegn pรฅ en position.
  • ๐Ÿ”Ž Sammenligning og sรธgning: compareTo(), compareToIgnoreCase() og contains() sammenligner strenge og tjekker for sekvenser.
  • โœ๏ธ Transformation: replace(), toLowerCase() og toUpperCase() รฆndrer strengindhold og store og smรฅ bogstaver.
  • ๐Ÿ”’ uforanderlighed: Strenge er endelige og uforanderlige; JVM'en gemmer dem i String Constant Pool.

Stringmanipulation i Java

Hvad er strenge i Java?

En streng er bogstavelig talt en rรฆkke tegn. Hej, sagde du tegn, er det ikke en primitiv dataindtastning Java. Ja, sรฅ i tekniske termer, det grundlรฆggende Java String er dybest set en rรฆkke tegn.

Sรฅ min ovenstรฅende streng af "ROSEโ€ kan reprรฆsenteres som fรธlgende โ€“

Java String

Hvorfor bruge Strings?

En af de primรฆre funktioner i moderne computervidenskab er at behandle menneskeligt sprog.

Ligesom tal er vigtige for matematik, er sprogsymboler vigtige for mening og beslutningstagning. Selvom de mรฅske ikke er synlige for computerbrugere, behandler computere sprog i baggrunden lige sรฅ prรฆcist og nรธjagtigt som en lommeregner. Hjรฆlpedialoger giver instruktioner. Menuer giver valgmuligheder. Og datavisninger viser statusser, fejl og รฆndringer i sproget i realtid.

Som en Java programmรธr, et af dine vigtigste vรฆrktรธjer til lagring og behandling af sprog vil vรฆre String-klassen.

Eksempler pรฅ strengsyntaks

Lad os nu komme til noget syntaks, vi skal trods alt skrive dette i Java kode er det ikke.

Streng er en rรฆkke tegn, reprรฆsenteret som:

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

I tekniske termer er strengen defineret som fรธlger i ovenstรฅende eksempel-

= new (argument);

Nu kan vi altid ikke skrive vores strenge som arrays; derfor kan vi definere strengen i Java som fรธlger:

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

I tekniske termer er ovenstรฅende reprรฆsenteret som:

= ;

Strengklasse Java udvider og Objektklasse.

Strengsammenkรฆdning:

Sammenkรฆdning er sammenfรธjning af to eller flere strenge.

Tag et kig pรฅ billedet nedenfor-

Eksempler pรฅ strengsyntaks

Vi har to strenge str1 = "Rock" og str2 = "Star"

Hvis vi lรฆgger disse to strenge sammen, skulle vi have et resultat som str3= "RockStar".

Tjek kodestykket nedenfor, det forklarer de to metoder til at udfรธre strengsammenkรฆdning.

Fรธrst bruger "konkat"-metoden af โ€‹โ€‹String-klasse og anden bruger aritmetisk "+"-operator. Begge resulterer i det samme output

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

Forventet output:

RockStar
RockStar

Vigtig Java streng metoder:

Java strengmetoder

Lad os spรธrge Java Stil et par spรธrgsmรฅl i klassen, og se om den kan besvare dem:

String "Lรฆngde" metode

Hvordan vil du bestemme lรฆngden af โ€‹โ€‹en given streng? Jeg har givet en metode kaldet "lรฆngde". Brug den mod den streng, du skal bruge for at finde 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());}}

Forventet output:

Length of String: 8

Streng "indexOf" metode

Hvis jeg kender lรฆngden, hvordan finder jeg sรฅ ud af hvilken karakter der er i hvilken position? Kort sagt, hvordan finder jeg indekset for et tegn?

Du svarede dig selv, ven, der er en "indexOf"-metode, der vil hjรฆlpe dig med at bestemme placeringen af โ€‹โ€‹en bestemt karakter, som du angiver.

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

Forventet output:

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

String "charAt" metode

I lighed med ovenstรฅende spรธrgsmรฅl, givet indekset, hvordan kender jeg karakteren pรฅ det sted?

Simpel en igen!! Brug "charAt"-metoden og angiv det indeks, hvis karakter du skal finde.

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

Forventet output:

Character at position 5: t

String "CompareTo"-metoden

Vil jeg kontrollere, om den streng, der blev genereret af en eller anden metode, er lig med noget, jeg vil verificere med? Hvordan sammenligner jeg to strenge?

Brug metoden "compareTo" og angiv den streng, du gerne vil sammenligne.

Brug "compareToIgnoreCase", hvis du ikke รธnsker, at resultatet skal skelne mellem store og smรฅ bogstaver.

Resultatet vil have vรฆrdien 0, hvis argumentstrengen er lig med denne streng; en vรฆrdi mindre end 0, hvis denne streng er leksikografisk mindre end strengargumentet; og en vรฆrdi stรธrre end 0, hvis denne streng er leksikografisk stรธrre end strengargumentet.

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

Forventet output:

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

String "Indeholder" metode

Jeg ved delvist, hvad strengen skulle have indeholdt, hvordan bekrรฆfter jeg, om strengen indeholder en sekvens af tegn, jeg angiver?

Brug metoden "indeholderโ€ og angiv de tegn, du skal kontrollere.

Returpolitik sand hvis og kun hvis denne streng indeholder den angivne sekvens af char-vรฆrdier.

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

Forventet output:

Contains sequence 'tar': true

String "endsWith"-metoden

Hvordan bekrรฆfter jeg, om en streng slutter med et bestemt suffiks? Igen svarede du pรฅ det. Brug metoden "endsWith" og angiv suffikset i argumenterne.

Returpolitik sand hvis tegnsekvensen reprรฆsenteret af argumentet er et suffiks af tegnsekvensen reprรฆsenteret af dette 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"));}}

Forventet output:

EndsWith character 'r': true

String "erstat alle" & "erstat fรธrst" metode

Jeg vil รฆndre min streng flere steder og erstatte flere dele af strengen?

Java String Replace, replaceAll og replaceFirst metoder. Du kan angive den del af strengen, du vil erstatte, og erstatningsstrengen i argumenterne.

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

Forventet output:

Replace 'Rock' with 'Duke': DukeStar

String Java "med smรฅ bogstaver" & Java Metode med "store bogstaver".

Jeg vil have hele min streng vist med smรฅ bogstaver eller store bogstaver?

Brug blot metoderne "toLowercase()" eller "ToUpperCase()" mod de strenge, der skal konverteres.

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

Forventet output:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Vigtige punkter at bemรฆrke:

  • String er en sidste klasse; dvs. nรฅr fรธrst den er oprettet, kan vรฆrdien ikke รฆndres. Stringobjekter kaldes derfor uforanderlige.
  • Java Virtual Machine(JVM) opretter en hukommelsesplacering specielt til Strings kaldet String Constant Pool. Det er derfor String kan initialiseres uden 'nyt' nรธgleord.
  • String klasse falder ind under java.lang.String hierarki. Men der er ingen grund til at importere denne klasse. Java platform giver dem automatisk.
  • String reference kan tilsidesรฆttes, men det sletter ikke indholdet; dvs. hvis

String h1 = "hej";

h1 = "hej"+"verden";

sรฅ bliver "hej" streng ikke slettet. Den mister bare sit hรฅndtag.

  • Flere referencer kan bruges til samme streng, men det vil den forekomme samme sted; dvs. hvis

String h1 = "hej";

String h2 = "hej";

String h3 = "hej";

sรฅ oprettes der kun รฉn pulje til streng "hej" i hukommelsen med 3 referencer-h1,h2,h3

  • Hvis en nummer er angivet i " " sรฅ det bliver til en snor, ikke et tal lรฆngere. Det betyder hvis

String S1 ="Tallet er: "+ "123"+"456โ€ณ;

Systemet.ud.println(S1);

sรฅ udskrives: Nummeret er: 123456

Hvis initialiseringen er sรฅdan:

String S1 = โ€œTallet er: โ€œ+(123+456);

System.out.println(S1);

sรฅ udskrives: Nummeret er:579

Det er alt til Strings!

Ofte Stillede Spรธrgsmรฅl

Java Strenge er uforanderlige af sikkerhedsmรฆssige รฅrsager, trรฅdsikkerhed og ydeevne. Da vรฆrdien ikke kan รฆndres efter oprettelse, kan JVM'en sikkert cache strenge i String Constant Pool og dele referencer.

In Java, == sammenligner objektreferencer, mens equals() sammenligner det faktiske tegnindhold i to strenge. Brug equals() til at kontrollere, om to strenge har samme vรฆrdi.

String er uforanderlig, mens StringBuilder og StringBuffer er foranderlige. StringBuffer er trรฅdsikker og synkroniseret; StringBuilder er hurtigere, men ikke trรฅdsikker, hvilket gรธr den ideel til manipulation af enkelttrรฅdet strenge.

AI-kodningsassistenter kan generere strenghรฅndteringskode, foreslรฅ de rigtige metoder, forklare regulรฆre udtryk og opdage fejl sรฅsom nullpointer eller indeksfejl i strengoperationer.

Ja. AI-vรฆrktรธjer kan skrive Java kode, der renser, formaterer og transformerer tekst ved hjรฆlp af metoder som erstat, trim og konvertering af store og smรฅ bogstaver, og derefter forklarer hvert trin for eleverne.

Opsummer dette indlรฆg med: