logo

Java-sträng

I Java , sträng är i grunden ett objekt som representerar en sekvens av char-värden. En array tecken fungerar på samma sätt som Java-sträng. Till exempel:

 char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch); 

är samma som:

 String s='javatpoint'; 

Java-sträng class tillhandahåller många metoder för att utföra operationer på strängar som compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring() etc.

Java.lang.String-klassen implementerar Serialiserbar , Jämförbar och CharSequence gränssnitt .

Sträng i Java

CharSequence Interface

CharSequence-gränssnittet används för att representera teckensekvensen. Sträng, StringBuffer och StringBuilder klasser implementerar det. Det betyder att vi kan skapa strängar i Java genom att använda dessa tre klasser.

CharSequence i Java

Java-strängen är oföränderlig vilket betyder att den inte kan ändras. När vi ändrar någon sträng skapas en ny instans. För föränderliga strängar kan du använda klasserna StringBuffer och StringBuilder.

Vi kommer att diskutera oföränderlig sträng senare. Låt oss först förstå vad String i Java är och hur man skapar String-objektet.

Vad är String i Java?

I allmänhet är String en sekvens av tecken. Men i Java är sträng ett objekt som representerar en sekvens av tecken. Klassen java.lang.String används för att skapa ett strängobjekt.

Hur skapar man ett strängobjekt?

Det finns två sätt att skapa String-objekt:

  1. Genom sträng bokstavlig
  2. Med nytt sökord

1) String Literal

Java String literal skapas med hjälp av dubbla citattecken. Till exempel:

 String s='welcome'; 

Varje gång du skapar en bokstavlig sträng, kontrollerar JVM först 'strängkonstantpoolen'. Om strängen redan finns i poolen, returneras en referens till den poolade instansen. Om strängen inte finns i poolen skapas en ny stränginstans och placeras i poolen. Till exempel:

 String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance 

Java-sträng

I exemplet ovan kommer endast ett objekt att skapas. För det första kommer JVM inte att hitta något strängobjekt med värdet 'Välkommen' i strängkonstantpoolen, det är därför det kommer att skapa ett nytt objekt. Efter det kommer den att hitta strängen med värdet 'Welcome' i poolen, den kommer inte att skapa ett nytt objekt utan returnerar referensen till samma instans.

Obs: Strängobjekt lagras i ett speciellt minnesområde som kallas 'strängkonstantpoolen'.

Varför Java använder begreppet String literal?

För att göra Java mer minneseffektivt (eftersom inga nya objekt skapas om det redan finns i strängkonstantpoolen).

2) Med nytt sökord

 String s=new String('Welcome');//creates two objects and one reference variable 

I sådant fall, JVM kommer att skapa ett nytt strängobjekt i normalt (icke-pool) heapminne, och det bokstavliga 'Välkommen' kommer att placeras i strängkonstantpoolen. Variabeln s kommer att referera till objektet i en heap (icke-pool).

javascript rullgardinsmeny

Exempel på Java-sträng

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); }} 
Testa det nu

Produktion:

java strings example 

Ovanstående kod konverterar en röding array till en Sträng objekt. Och visar String-objekten s1, s2 , och s3 på konsolen med hjälp av println() metod.

Klassmetoder för Java String

Klassen java.lang.String tillhandahåller många användbara metoder för att utföra operationer på sekvens av char-värden.

Nej.MetodBeskrivning
1 char charAt(int index) Det returnerar char-värde för det specifika indexet
2 int length() Det returnerar stränglängden
3 statiskt strängformat (strängformat, objekt... args) Den returnerar en formaterad sträng.
4 statiskt strängformat (Locale l, strängformat, objekt... args) Den returnerar formaterad sträng med en given lokalitet.
5 String substring(int beginIndex) Den returnerar delsträng för givet startindex.
6 String substring(int beginIndex, int endIndex) Den returnerar delsträng för givet startindex och slutindex.
7 boolean innehåller(CharSequence s) Den returnerar sant eller falskt efter att ha matchat sekvensen av char-värdet.
8 static String join(CharSequence avgränsare, CharSequence... element) Den returnerar en sammanfogad sträng.
9 static String join (CharSequence-avgränsare, Iterable element) Den returnerar en sammanfogad sträng.
10 boolesk lika med(objekt en annan) Den kontrollerar strängens likhet med det givna objektet.
elva boolean isEmpty() Den kontrollerar om strängen är tom.
12 String concat(String str) Den sammanfogar den angivna strängen.
13 String replace(char old, char new) Den ersätter alla förekomster av det angivna char-värdet.
14 String replace(CharSequence old, CharSequence new) Den ersätter alla förekomster av den angivna CharSequence.
femton static String equalsIgnoreCase(String another) Den jämför en annan sträng. Det kontrollerar inte fallet.
16 String[] split(String regex) Den returnerar en delad sträng som matchar regex.
17 String[] split(String regex, int limit) Den returnerar en delad sträng som matchar regex och limit.
18 String intern() Den returnerar en intern sträng.
19 int indexOf(int ch) Det returnerar det angivna char-värdeindexet.
tjugo int indexOf(int ch, int fromIndex) Den returnerar det angivna char-värdeindexet som börjar med ett givet index.
tjugoett int indexOf(String substring) Den returnerar det angivna delsträngsindexet.
22 int indexOf(String substring, int fromIndex) Den returnerar det angivna delsträngsindexet som börjar med ett givet index.
23 String toLowerCase() Den returnerar en sträng med gemener.
24 String toLowerCase(Locale l) Den returnerar en sträng med gemener med angivna språkinställningar.
25 String toUpperCase() Den returnerar en sträng med versaler.
26 Sträng till versaler (Locale l) Den returnerar en sträng med versaler med angivna språkinställningar.
27 String trim() Det tar bort start- och slututrymmen i denna sträng.
28 static String valueOf(int värde) Den konverterar given typ till sträng. Det är en överbelastad metod.

Vet du?
  • Varför är strängobjekt oföränderliga?
  • Hur skapar man en oföränderlig klass?
  • Vad är strängkonstant pool?
  • Vilken kod skrivs av kompilatorn om du sammanfogar någon sträng med + (strängsammansättningsoperator)?
  • Vad är skillnaden mellan StringBuffer och StringBuilder klass?

Vad kommer vi att lära oss i String Handling?
  • Begreppet sträng
  • Oföränderlig sträng
  • Strängjämförelse
  • Strängsammansättning
  • Begreppet delsträng
  • Stringklassmetoder och dess användning
  • StringBuffer klass
  • StringBuilder klass
  • Skapar oföränderlig klass
  • toString()-metoden
  • StringTokenizer klass