Java Strengemanipulation med EKSEMPEL
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 –
Hvorfor bruge Strings?
En af de primære funktioner i moderne computervidenskab er at behandle menneskeligt sprog.
På samme måde som tal er vigtige for matematik, er sprogsymboler vigtige for mening og beslutningstagning. Selvom det måske ikke er synligt for computerbrugere, behandler computere sproget i baggrunden lige så præcist og præcist som en lommeregner. Hjælpedialoger giver instruktioner. Menuer giver valgmuligheder. Og dataskærme viser statusser, fejl og ændringer i realtid af sproget.
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 ind 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-
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 nedenstående kodestykke, og 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:
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 som "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 "tegnAt”-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 "sammenligne med” 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!