I Java , streng er dybest set et objekt, der repræsenterer sekvensen af char-værdier. An array af tegn fungerer på samme måde som Java-streng. For eksempel:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
er det samme som:
String s='javatpoint';
Java streng klasse giver en masse metoder til at udføre operationer på strenge såsom compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring() osv.
Java.lang.String-klassen implementerer Serialiserbar , Sammenlignelig og CharSequence grænseflader .
CharSequence Interface
CharSequence-grænsefladen bruges til at repræsentere rækkefølgen af tegn. Snor, StringBuffer og StringBuilder klasser implementerer det. Det betyder, at vi kan oprette strenge i Java ved at bruge disse tre klasser.
Java-strengen er uforanderlig, hvilket betyder, at den ikke kan ændres. Hver gang vi ændrer en streng, oprettes en ny instans. Til foranderlige strenge kan du bruge klasserne StringBuffer og StringBuilder.
Vi vil diskutere uforanderlig streng senere. Lad os først forstå, hvad String i Java er, og hvordan man opretter String-objektet.
Hvad er streng i Java?
Generelt er streng en sekvens af tegn. Men i Java er streng et objekt, der repræsenterer en sekvens af tegn. Java.lang.String-klassen bruges til at oprette et strengobjekt.
Hvordan opretter man et strengobjekt?
Der er to måder at oprette String-objekt på:
- Ved streng bogstavelig
- Efter nyt søgeord
1) String Literal
Java String literal er oprettet ved at bruge dobbelte anførselstegn. For eksempel:
String s='welcome';
Hver gang du opretter en streng literal, tjekker JVM først 'strengkonstantpuljen'. Hvis strengen allerede findes i puljen, returneres en reference til den samlede instans. Hvis strengen ikke findes i puljen, oprettes en ny strengforekomst og placeres i puljen. For eksempel:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
I ovenstående eksempel vil der kun blive oprettet ét objekt. For det første vil JVM ikke finde noget strengobjekt med værdien 'Velkommen' i strengkonstantpuljen, hvorfor det vil oprette et nyt objekt. Derefter vil den finde strengen med værdien 'Velkommen' i puljen, den vil ikke oprette et nyt objekt, men returnere referencen til den samme instans.
Bemærk: Strengobjekter gemmes i et særligt hukommelsesområde kendt som 'strengkonstantpuljen'.
Hvorfor Java bruger begrebet String literal?
For at gøre Java mere hukommelseseffektiv (fordi der ikke oprettes nye objekter, hvis det allerede findes i strengkonstantpuljen).
2) Ved nyt søgeord
String s=new String('Welcome');//creates two objects and one reference variable
I så fald JVM vil oprette et nyt strengobjekt i normal (ikke-pool) heap-hukommelse, og det bogstavelige 'Velkommen' vil blive placeret i strengkonstantpuljen. Variablen s vil referere til objektet i en heap (ikke-pulje).
sjakal vs ulv
Eksempel på Java-streng
StringExample.java
public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }}Test det nu
Produktion:
java strings example
Ovenstående kode konverterer en char række i en Snor objekt. Og viser String-objekterne s1, s2 , og s3 på konsol ved hjælp af println() metode.
Java String klasse metoder
Java.lang.String-klassen giver mange nyttige metoder til at udføre operationer på rækkefølgen af char-værdier.
Ingen. | Metode | Beskrivelse |
---|---|---|
1 | char charAt(int index) | Det returnerer char-værdi for det bestemte indeks |
2 | int længde() | Det returnerer strenglængde |
3 | statisk strengformat (strengformat, objekt... args) | Det returnerer en formateret streng. |
4 | statisk strengformat (Locale l, strengformat, objekt... args) | Det returnerer formateret streng med en given lokalitet. |
5 | String substring(int beginIndex) | Det returnerer understreng for givet begyndelsesindeks. |
6 | String substring(int startIndex, int endIndex) | Det returnerer understreng for givet startindeks og slutindeks. |
7 | boolesk indeholder(CharSequence s) | Det returnerer sandt eller falsk efter at have matchet sekvensen af char-værdi. |
8 | statisk streng join(CharSequence delimiter, CharSequence... elementer) | Det returnerer en sammenføjet streng. |
9 | statisk streng join(CharSequence delimiter, Iterable elementer) | Det returnerer en sammenføjet streng. |
10 | boolsk er lig (objekt andet) | Det kontrollerer strengens lighed med det givne objekt. |
elleve | boolsk er tom() | Den kontrollerer, om strengen er tom. |
12 | String concat(String str) | Det sammenkæder den angivne streng. |
13 | String replace (char old, char new) | Den erstatter alle forekomster af den angivne char-værdi. |
14 | String replace(CharSequence old, CharSequence new) | Den erstatter alle forekomster af den angivne CharSequence. |
femten | statisk streng lig med IgnoreCase(streng en anden) | Den sammenligner en anden streng. Det tjekker ikke sagen. |
16 | String[] split(String regex) | Det returnerer en delt streng, der matcher regex. |
17 | String[] split(String regex, int limit) | Det returnerer en delt streng, der matcher regex og limit. |
18 | String praktikant() | Det returnerer en intern streng. |
19 | int indexOf(int ch) | Det returnerer det angivne char-værdiindeks. |
tyve | int indexOf(int ch, int fromIndex) | Det returnerer det angivne char-værdiindeks, der starter med et givet indeks. |
enogtyve | int indexOf(streng understreng) | Det returnerer det angivne understrengindeks. |
22 | int indexOf(String substring, int fromIndex) | Det returnerer det angivne understrengindeks, der starter med et givet indeks. |
23 | String toLowerCase() | Det returnerer en streng med små bogstaver. |
24 | String toLowerCase(Locale l) | Det returnerer en streng med små bogstaver ved hjælp af specificeret lokalitet. |
25 | String toUpperCase() | Det returnerer en streng med store bogstaver. |
26 | Streng til Store bogstaver (Locale l) | Det returnerer en streng med store bogstaver ved hjælp af specificeret lokalitet. |
27 | String trim() | Det fjerner begyndelses- og slutmellemrum af denne streng. |
28 | statisk streng værdiOf(int værdi) | Det konverterer given type til streng. Det er en overbelastet metode. |
Ved du?
- Hvorfor er strengobjekter uforanderlige?
- Hvordan opretter man en uforanderlig klasse?
- Hvad er strengkonstant pool?
- Hvilken kode er skrevet af compileren, hvis du sammenkæder en streng med + (strengsammenkædningsoperator)?
- Hvad er forskellen mellem StringBuffer og StringBuilder klasse?
Hvad vil vi lære i String Handling?
- Begrebet streng
- Uforanderlig streng
- Streng sammenligning
- Sammenkædning af strenge
- Begrebet understreng
- String klasse metoder og dens brug
- StringBuffer klasse
- StringBuilder klasse
- Oprettelse af uforanderlig klasse
- toString() metode
- StringTokenizer klasse