Manipulacija stringovima u Java s PRIMJEROM

โšก Pametni saลพetak

Manipulacija stringovima u Java oslanja se na klasu String, koja predstavlja tekst kao niz znakova i pruลพa ugraฤ‘ene metode kao ลกto su length, indexOf, charAt, compareTo, contains, replace i pretvorba velikih i malih slova za uฤinkovitu obradu i transformaciju teksta.

  • ๐Ÿ”ค Osnove stringova: A Java String je niz znakova kojim upravlja klasa String, koja proลกiruje Object.
  • โž• Spajanje: Spojite nizove pomoฤ‡u metode concat() ili operatora + za isti rezultat.
  • ๐Ÿ“ Metode pregleda: length(), indexOf() i charAt() vraฤ‡aju veliฤinu, indeks znaka i znak na poziciji.
  • ๐Ÿ”Ž Usporedba i pretraลพivanje: compareTo(), compareToIgnoreCase() i contains() usporeฤ‘uju stringove i provjeravaju sekvence.
  • โœ๏ธ transformacija: replace(), toLowerCase() i toUpperCase() mijenjaju sadrลพaj stringa i velika i mala slova.
  • ๐Ÿ”’ Nepromjenljivost: Nizovi su konaฤni i nepromjenjivi; JVM ih pohranjuje u skup konstanti nizova.

Manipulacija stringovima u Java

U ฤemu su stringovi Java?

Niz je u doslovnom smislu niz znakova. Hej, jeste li rekli znakovi, nije li to primitivan tip podataka u Java. Da, dakle u tehniฤkom smislu, osnovno Java String je u osnovi niz znakova.

Moj gornji niz od "ROSEโ€ moลพe se predstaviti kao sljedeฤ‡e โ€“

Java Niz

Zaลกto koristiti Strings?

Jedna od primarnih funkcija moderne raฤunalne znanosti je obrada ljudskog jezika.

Sliฤno kao ลกto su brojevi vaลพni za matematiku, jeziฤni simboli vaลพni su za znaฤenje i donoลกenje odluka. Iako to moลพda nije vidljivo korisnicima raฤunala, raฤunala obraฤ‘uju jezik u pozadini precizno i โ€‹โ€‹toฤno kao kalkulator. Dijalozi za pomoฤ‡ pruลพaju upute. Izbornici pruลพaju izbore. A prikazi podataka prikazuju statuse, pogreลกke i promjene jezika u stvarnom vremenu.

Kao Java programeru, jedan od vaลกih glavnih alata za pohranu i obradu jezika bit ฤ‡e klasa String.

Primjeri sintakse nizova

Sada, prijeฤ‘imo na sintaksu, uostalom, ovo moramo napisati u Java kod zar ne.

String je niz znakova, predstavljen kao:

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

U tehniฤkom smislu, String je definiran kako slijedi u gornjem primjeru-

= new (argument);

Sada ne moลพemo uvijek pisati naลกe nizove kao nizove; stoga moลพemo definirati String u Java kako slijedi:

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

U tehniฤkom smislu, gore navedeno je predstavljeno kao:

= ;

The Gudaฤki razred Java proteลพe se o Klasa objekta.

Spajanje nizova:

Ulanฤavanje je spajanje dva ili viลกe nizova.

Pogledajte donju sliku-

Primjeri sintakse nizova

Imamo dva niza str1 = โ€œRockโ€ i str2 = โ€œStarโ€

Ako zbrojimo ova dva niza, trebali bismo imati rezultat str3= โ€œRockStarโ€.

Provjerite donji isjeฤak koda, a on objaลกnjava dvije metode za izvoฤ‘enje spajanja stringova.

Prvo koristi "CONCATโ€ metode String klase, a druga koristi aritmetiฤki โ€œ+โ€ operator. Oba rezultiraju istim rezultatom

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

Oฤekivani rezultat:

RockStar
RockStar

Vaลพno Java string metode:

Java string metode

Pitajmo Java String klasa nekoliko pitanja i vidjeti moลพe li odgovoriti na njih:

Metoda โ€œduลพineโ€ niza

Kako ฤ‡ete odrediti duljinu zadanog niza? Dao sam metodu koja se zove "duลพina". Upotrijebite ga protiv niza koji vam je potreban da biste pronaลกli duljinu.

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

Oฤekivani rezultat:

Length of String: 8

String metoda โ€œindexOfโ€.

Ako znam duljinu, kako ฤ‡u pronaฤ‡i koji je znak na kojoj poziciji? Ukratko, kako ฤ‡u pronaฤ‡i indeks znaka?

Sam si si odgovorio, prijatelju, postoji metoda โ€œindexOfโ€ koja ฤ‡e ti pomoฤ‡i da odrediลก lokaciju odreฤ‘enog znaka koji navedeลก.

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

Oฤekivani rezultat:

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

String โ€œcharAtโ€ metoda

Sliฤno gornjem pitanju, s obzirom na indeks, kako mogu znati lik na toj lokaciji?

Opet jednostavno!! Koristite metodu โ€œcharAtโ€ i navedite indeks ฤiji znak trebate pronaฤ‡i.

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

Oฤekivani rezultat:

Character at position 5: t

String metoda โ€œUsporedi sโ€.

ลฝelim li provjeriti je li String koji je generiran nekom metodom jednak neฤemu ลกto ลพelim provjeriti? Kako mogu usporediti dva niza?

Koristite metodu โ€œcompareToโ€ i navedite String koji ลพelite usporediti.

Koristite โ€œcompareToIgnoreCaseโ€ u sluฤaju da ne ลพelite da rezultat bude osjetljiv na velika i mala slova.

Rezultat ฤ‡e imati vrijednost 0 ako je niz argumenata jednak ovom nizu; vrijednost manja od 0 ako je ovaj niz leksikografski manji od argumenta niza; i vrijednost veฤ‡u od 0 ako je ovaj niz leksikografski veฤ‡i od argumenta niza.

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

Oฤekivani rezultat:

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

String โ€œContainโ€ metoda

Djelomiฤno znam ลกto je niz trebao sadrลพavati, kako mogu potvrditi sadrลพi li niz niz znakova koje sam naveo?

Koristite metodu "sadrลพiโ€ i odredite znakove koje trebate provjeriti.

Povratak istinski ako i samo ako ovaj niz sadrลพi navedeni niz vrijednosti char.

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

Oฤekivani rezultat:

Contains sequence 'tar': true

String metoda "endsWith".

Kako mogu potvrditi zavrลกava li niz s odreฤ‘enim sufiksom? Opet si odgovorio. Koristite metodu "endsWith" i navedite sufiks u argumentima.

Povratak istinski ako je niz znakova predstavljen argumentom sufiks niza znakova predstavljen ovim objektom.

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

Oฤekivani rezultat:

EndsWith character 'r': true

Metoda niza โ€œreplaceAllโ€ & โ€œreplaceFirstโ€.

ลฝelim modificirati svoj niz na nekoliko mjesta i zamijeniti nekoliko dijelova niza?

Java Metode String Replace, replaceAll i replaceFirst. Moลพete navesti dio niza koji ลพelite zamijeniti i zamjenski niz u argumentima.

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

Oฤekivani rezultat:

Replace 'Rock' with 'Duke': DukeStar

Niz Java "mala slova" & Java Metoda "velika slova".

ลฝelim da cijeli niz bude prikazan malim ili velikim slovima?

Samo upotrijebite metode โ€œtoLowercase()โ€ ili โ€œToUpperCase()โ€ za nizove koje je potrebno pretvoriti.

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

Oฤekivani rezultat:

Convert to LowerCase: rockstar
Convert to UpperCase: ROCKSTAR

Vaลพne napomene:

  • String je finalna klasa; tj. jednom stvorena vrijednost ne moลพe se mijenjati. Stoga se String objekti nazivaju nepromjenjivima.
  • The Java Virtualni stroj (JVM) stvara memorijsku lokaciju posebno za pozivane nizove Konstantni skup nizova. Zato se String moลพe inicijalizirati bez kljuฤne rijeฤi 'new'.
  • String klasa spada pod java.lang.Hijerarhija nizova. Ali nema potrebe za uvozom ove klase. Java platforma ih automatski osigurava.
  • Niz referenca se moลพe nadjaฤati, ali to ne briลกe sadrลพaj; tj. ako

String h1 = โ€œzdravoโ€;

h1 = โ€œzdravoโ€+โ€svijeteโ€;

tada se niz โ€œhelloโ€ ne briลกe. Jednostavno gubi svoju drลกku.

  • Viลกestruke reference moลพe se koristiti za isti String, ali hoฤ‡e javljaju na istom mjestu; tj. ako

String h1 = โ€œzdravoโ€;

String h2 = โ€œzdravoโ€;

String h3 = โ€œzdravoโ€;

tada se u memoriji kreira samo jedan skup za String โ€œhelloโ€ s 3 reference-h1,h2,h3

  • Ako je broj je naveden u โ€ โ€œ onda to postaje niz, nije viลกe broj. To znaฤi ako

String S1 =โ€Broj je: โ€œ+ โ€œ123โ€+โ€456โ€;

Sustav.van.println(S1);

tada ฤ‡e ispisati: Broj je: 123456

Ako je inicijalizacija ovakva:

String S1 = โ€œBroj je: โ€œ+(123+456);

System.out.println(S1);

tada ฤ‡e ispisati: Broj je:579

To je sve za Strings!

Pitanja i odgovori

Java Nizovi znakova su nepromjenjivi radi sigurnosti, sigurnosti niti i performansi. Buduฤ‡i da se vrijednost ne moลพe promijeniti nakon stvaranja, JVM moลพe sigurno predmemorirati nizove u skupu konstanti nizova i dijeliti reference.

In Java, == usporeฤ‘uje reference objekata, dok equals() usporeฤ‘uje stvarni sadrลพaj znakova dvaju nizova. Koristite equals() za provjeru imaju li dva niza istu vrijednost.

String je nepromjenjiv, dok su StringBuilder i StringBuffer su promjenjivi. StringBuffer je siguran za koriลกtenje u viลกe niti i sinkroniziran; StringBuilder je brลพi, ali nije siguran za koriลกtenje u viลกe niti, ลกto ga ฤini idealnim za manipulaciju stringovima s jednom niti.

AI asistenti za kodiranje mogu generirati kod za rukovanje stringovima, predloลพiti ispravne metode, objasniti regularne izraze i otkriti greลกke poput nultog pokazivaฤa ili indeksnih pogreลกaka u operacijama s stringovima.

Da. Alati umjetne inteligencije mogu pisati Java kod koji ฤisti, formatira i transformira tekst pomoฤ‡u metoda poput zamjene, obrezivanja i pretvorbe velikih i malih slova, a zatim objasnite svaki korak uฤenicima.

Saลพmite ovu objavu uz: