Strengmanipulering i Java med EKSEMPEL

โšก Smart oppsummering

Strengmanipulering i Java er avhengig av String-klassen, som representerer tekst som en matrise med tegn, og tilbyr innebygde metoder som length, indexOf, charAt, compareTo, contains, replace og konvertering av store og smรฅ bokstaver for รฅ behandle og transformere tekst effektivt.

  • ๐Ÿ”ค Grunnleggende om strenger: A Java String er en matrise med tegn som administreres av String-klassen, som utvider Object.
  • โž• Sammenkobling: Koble sammen strenger ved hjelp av concat()-metoden eller + -operatoren for samme resultat.
  • ๐Ÿ“ Inspeksjonsmetoder: length(), indexOf() og charAt() returnerer stรธrrelse, tegnindeks og tegn pรฅ en posisjon.
  • ๐Ÿ”Ž Sammenligning og sรธk: compareTo(), compareToIgnoreCase(), og contains() sammenligner strenger og ser etter sekvenser.
  • โœ๏ธ Transformasjon: replace(), toLowerCase() og toUpperCase() endrer strenginnhold og store og smรฅ bokstaver.
  • ๐Ÿ”’ uforanderlighet: Strenger er endelige og uforanderlige; JVM-en lagrer dem i strengkonstantpoolen.

Strengmanipulering i Java

Hva er strenger i Java?

En streng i bokstavelige termer er en serie med tegn. Hei, sa du tegn, er det ikke en primitiv datatype? Java. Ja, sรฅ i tekniske termer, det grunnleggende Java String er i utgangspunktet en rekke tegn.

Sรฅ strengen min ovenfor med "ROSE" kan representeres som fรธlgende -

Java String

Hvorfor bruke strenger?

En av hovedfunksjonene til moderne informatikk er รฅ behandle menneskelig sprรฅk.

Pรฅ samme mรฅte som tall er viktige i matematikk, er sprรฅksymboler viktige for mening og beslutningstaking. Selv om de kanskje ikke er synlige for databrukere, behandler datamaskiner sprรฅk i bakgrunnen like presist og nรธyaktig som en kalkulator. Hjelpedialoger gir instruksjoner. Menyer gir valg. Og datavisninger viser statuser, feil og endringer i sprรฅket i sanntid.

Som en Java programmerer, et av hovedverktรธyene dine for lagring og prosessering av sprรฅk kommer til รฅ vรฆre String-klassen.

Eksempler pรฅ strengsyntaks

La oss nรฅ komme til litt syntaks, vi mรฅ tross alt skrive dette i Java kode er det ikke.

String er en rekke tegn, representert som:

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

I tekniske termer er strengen definert som fรธlger i eksemplet ovenfor-

= new (argument);

Nรฅ kan vi ikke alltid skrive strengene vรฅre som matriser; derfor kan vi definere strengen i Java som fรธlger:

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

I tekniske termer er ovenstรฅende representert som:

= ;

Ocuco Strengklasse Java strekker de Objektklasse.

Strengesammenkobling:

Sammenkobling er sammenfรธyning av to eller flere strenger.

Ta en titt pรฅ bildet under-

Eksempler pรฅ strengsyntaks

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

Hvis vi legger sammen disse to strengene, bรธr vi fรฅ et resultat som str3= โ€œRockStarโ€.

Sjekk kodestykket nedenfor, og det forklarer de to metodene for รฅ utfรธre strengsammenkobling.

Fรธrst bruker "konkat"-metoden for String-klassen og andre bruker aritmetisk "+"-operator. Begge resulterer i samme utgang

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 utgang:

RockStar
RockStar

Viktig Java strengmetoder:

Java strengmetoder

La oss spรธrre Java Sett inn noen spรธrsmรฅl og se om den kan svare pรฅ dem:

String "Length" metode

Hvordan vil du bestemme lengden pรฅ gitt streng? Jeg har gitt en metode kalt "lengde". Bruk den mot strengen du trenger for รฅ finne lengden.

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 utgang:

Length of String: 8

Streng ยซindexOfยป-metoden

Hvis jeg vet lengden, hvordan finner jeg hvilken karakter som er i hvilken posisjon? Kort sagt, hvordan finner jeg indeksen til et tegn?

Du svarte deg selv, kompis, det er en "indexOf"-metode som vil hjelpe deg med รฅ finne plasseringen til en bestemt karakter du spesifiserer.

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 utgang:

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

String "charAt" metode

I likhet med spรธrsmรฅlet ovenfor, gitt indeksen, hvordan kjenner jeg tegnet pรฅ det stedet?

Enkelt igjen!! Bruk "charAt"-metoden og oppgi indeksen hvis karakter du trenger รฅ finne.

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 utgang:

Character at position 5: t

String "CompareTo"-metoden

Vil jeg sjekke om strengen som ble generert av en metode er lik noe jeg vil verifisere med? Hvordan sammenligner jeg to strenger?

Bruk metoden "compareTo" og spesifiser strengen du vil sammenligne.

Bruk "compareToIgnoreCase" i tilfelle du ikke vil at resultatet skal skille mellom store og smรฅ bokstaver.

Resultatet vil ha verdien 0 hvis argumentstrengen er lik denne strengen; en verdi mindre enn 0 hvis denne strengen er leksikografisk mindre enn strengargumentet; og en verdi stรธrre enn 0 hvis denne strengen er leksikografisk stรธrre enn 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 utgang:

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

String "Contain"-metoden

Jeg vet delvis hva strengen skal ha inneholdt, hvordan kan jeg bekrefte om strengen inneholder en sekvens av tegn jeg spesifiserer?

Bruk metoden "inneholderโ€ og spesifiser tegnene du mรฅ sjekke.

Returer sant hvis og bare hvis denne strengen inneholder den angitte sekvensen av char-verdier.

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 utgang:

Contains sequence 'tar': true

Streng ยซendsWithยป-metoden

Hvordan bekrefter jeg om en streng slutter med et bestemt suffiks? Igjen svarte du pรฅ det. Bruk "endsWith"-metoden og spesifiser suffikset i argumentene.

Returer sant hvis tegnsekvensen representert av argumentet er et suffiks av tegnsekvensen representert av dette objektet.

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 utgang:

EndsWith character 'r': true

Streng "replaceAll" & "replaceFirst"-metoden

Jeg รธnsker รฅ endre strengen min pรฅ flere steder og erstatte flere deler av strengen?

Java String Replace, replaceAll og replaceFirst metoder. Du kan spesifisere delen av strengen du vil erstatte og erstatningsstrengen i argumentene.

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 utgang:

Replace 'Rock' with 'Duke': DukeStar

String Java "to smรฅ bokstaver" & Java Metode med store bokstaver

Jeg vil at hele strengen min skal vises med smรฅ eller store bokstaver?

Bare bruk metodene "toLowercase()" eller "ToUpperCase()" mot strengene som mรฅ 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 utgang:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Viktige punkter รฅ merke seg:

  • String er en finaleklasse; dvs. nรฅr den er opprettet, kan verdien ikke endres. Stringobjekter kalles derfor uforanderlige.
  • Ocuco Java Virtual Machine(JVM) oppretter en minneplassering spesielt for strenger kalt String ConstantPool. Det er derfor String kan initialiseres uten "nytt" nรธkkelord.
  • Strengeklassen faller inn under java.lang.String hierarki. Men det er ikke nรธdvendig รฅ importere denne klassen. Java plattformen gir dem automatisk.
  • String referanse kan overstyres, men det sletter ikke innholdet; dvs. hvis

String h1 = "hei";

h1 = "hei"+"verden";

da blir ikke "hei"-strengen slettet. Den mister bare hรฅndtaket.

  • Flere referanser kan brukes for samme streng, men det vil forekomme pรฅ samme sted; dvs. hvis

String h1 = "hei";

String h2 = "hei";

String h3 = "hei";

da opprettes bare รฉn pool for streng "hei" i minnet med 3 referanser-h1,h2,h3

  • Om en nummeret er oppgitt i " " da det blir en streng, ikke et tall lenger. Det betyr hvis

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

System.ut.println(S1);

sรฅ skrives det ut: Nummeret er: 123456

Hvis initialiseringen er slik:

String S1 = "Tallet er: "+(123+456);

System.out.println(S1);

sรฅ vil den skrives ut: Tallet er:579

Det er alt til Strings!

Spรธrsmรฅl og svar

Java Strenger er uforanderlige av hensyn til sikkerhet, trรฅdsikkerhet og ytelse. Fordi verdien ikke kan endres etter opprettelse, kan JVM-en trygt mellomlagre strenger i strengkonstantpoolen og dele referanser.

In Java, == sammenligner objektreferanser, mens equals() sammenligner det faktiske tegninnholdet i to strenger. Bruk equals() for รฅ sjekke om to strenger har samme verdi.

String er uforanderlig, mens StringBuilder og StringBuffer er foranderlige. StrengBuffer er trรฅdsikker og synkronisert; StringBuilder er raskere, men ikke trรฅdsikker, noe som gjรธr den ideell for manipulering av enkelttrรฅdede strenger.

AI-kodingsassistenter kan generere strenghรฅndteringskode, foreslรฅ riktige metoder, forklare regulรฆre uttrykk og oppdage feil som nullpeker eller indeksfeil i strengoperasjoner.

Ja. AI-verktรธy kan skrive Java kode som renser, formaterer og transformerer tekst ved hjelp av metoder som erstatt, trim og konvertering av store og smรฅ bokstaver, og deretter forklarer hvert trinn for elevene.

Oppsummer dette innlegget med: