In Java , string is in feite een object dat een reeks char-waarden vertegenwoordigt. Een reeks van tekens werkt hetzelfde als een Java-reeks. Bijvoorbeeld:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
is hetzelfde als:
String s='javatpoint';
Java-reeks class biedt veel methoden om bewerkingen uit te voeren op tekenreeksen zoals Compare(), concat(), equals(), split(), length(), Replace(), CompareTo(), intern(), substring() etc.
De klasse java.lang.String wordt geïmplementeerd Serialiseerbaar , Vergelijkbaar En Tekenreeks interfaces .
CharSequence-interface
De CharSequence-interface wordt gebruikt om de reeks tekens weer te geven. Snaar, StringBuffer En StringBuilder klassen implementeren het. Het betekent dat we strings in Java kunnen maken door deze drie klassen te gebruiken.
De Java String is onveranderlijk, wat betekent dat deze niet kan worden gewijzigd. Telkens wanneer we een tekenreeks wijzigen, wordt er een nieuwe instantie gemaakt. Voor veranderlijke tekenreeksen kunt u de klassen StringBuffer en StringBuilder gebruiken.
We zullen de onveranderlijke string later bespreken. Laten we eerst begrijpen wat String in Java is en hoe we het String-object kunnen maken.
Wat is tekenreeks in Java?
Over het algemeen is String een reeks tekens. Maar in Java is string een object dat een reeks tekens vertegenwoordigt. De klasse java.lang.String wordt gebruikt om een stringobject te maken.
Hoe maak je een stringobject?
Er zijn twee manieren om een String-object te maken:
- Letterlijk per tekenreeks
- Op nieuw trefwoord
1) Tekenreeks letterlijk
Letterlijke Java String wordt gemaakt met dubbele aanhalingstekens. Bijvoorbeeld:
String s='welcome';
Elke keer dat u een letterlijke tekenreeks maakt, controleert de JVM eerst de 'stringconstantepool'. Als de tekenreeks al in de pool bestaat, wordt een verwijzing naar het gepoolde exemplaar geretourneerd. Als de tekenreeks niet in de pool bestaat, wordt er een nieuwe tekenreeksinstantie gemaakt en in de pool geplaatst. Bijvoorbeeld:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
In het bovenstaande voorbeeld wordt slechts één object gemaakt. Ten eerste zal JVM geen enkel stringobject vinden met de waarde 'Welkom' in de stringconstantepool. Daarom zal het een nieuw object aanmaken. Daarna zal het de string met de waarde 'Welkom' in de pool vinden, het zal geen nieuw object aanmaken maar de verwijzing naar dezelfde instantie retourneren.
Opmerking: String-objecten worden opgeslagen in een speciaal geheugengebied dat bekend staat als de 'stringconstantepool'.
Waarom gebruikt Java het concept van String letterlijk?
Om Java geheugenefficiënter te maken (omdat er geen nieuwe objecten worden gemaakt als deze al in de reeksconstantenpool voorkomen).
2) Op nieuw trefwoord
String s=new String('Welcome');//creates two objects and one reference variable
In dat geval, JVM zal een nieuw stringobject creëren in het normale (niet-pool) heapgeheugen, en de letterlijke 'Welkom' zal in de stringconstantepool worden geplaatst. De variabele s verwijst naar het object in een heap (niet-pool).
Java-thread maken
Voorbeeld van Java-tekenreeks
StringVoorbeeld.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 het nu
Uitgang:
java strings example
De bovenstaande code converteert a verkoold array in een Snaar voorwerp. En geeft de String-objecten weer s1, s2 , En s3 op console gebruiken println() methode.
Java String-klassemethoden
De klasse java.lang.String biedt veel handige methoden om bewerkingen uit te voeren op een reeks char-waarden.
Nee. | Methode | Beschrijving |
---|---|---|
1 | char charAt(int-index) | Het retourneert de char-waarde voor de specifieke index |
2 | int-lengte() | Het retourneert de tekenreekslengte |
3 | statisch String-formaat (String-formaat, Object... args) | Het retourneert een opgemaakte tekenreeks. |
4 | statisch String-formaat (Locale l, String-formaat, Object... args) | Het retourneert een opgemaakte tekenreeks met de opgegeven landinstelling. |
5 | Tekenreeks-subtekenreeks(int beginIndex) | Het retourneert een subtekenreeks voor een gegeven beginindex. |
6 | Tekenreeks-subtekenreeks(int beginIndex, int endIndex) | Het retourneert een subtekenreeks voor een gegeven beginindex en eindindex. |
7 | boolean bevat(CharSequence s) | Het retourneert waar of onwaar na het matchen van de reeks char-waarden. |
8 | statische String join (CharSequence-scheidingsteken, CharSequence...-elementen) | Het retourneert een samengevoegde string. |
9 | statische String join (CharSequence-scheidingsteken, itereerbare elementen) | Het retourneert een samengevoegde string. |
10 | boolean is gelijk aan (Object een ander) | Het controleert de gelijkheid van de string met het gegeven object. |
elf | booleaanse waarde isLeeg() | Er wordt gecontroleerd of de string leeg is. |
12 | Tekenreeks concat(String str) | Het voegt de opgegeven tekenreeks samen. |
13 | String vervangen (char oud, char nieuw) | Het vervangt alle exemplaren van de opgegeven char-waarde. |
14 | Tekenreeks vervangen (CharSequence oud, CharSequence nieuw) | Het vervangt alle exemplaren van de opgegeven CharSequence. |
vijftien | statische String equalsIgnoreCase(String een andere) | Het vergelijkt een andere string. Het controleert de zaak niet. |
16 | String[] split(String regex) | Het retourneert een gesplitste tekenreeks die overeenkomt met de regex. |
17 | String[] split(String regex, int-limiet) | Het retourneert een gesplitste tekenreeks die overeenkomt met regex en limiet. |
18 | String stagiair() | Het retourneert een geïnterneerde string. |
19 | int indexOf(int ch) | Het retourneert de opgegeven char-waarde-index. |
twintig | int indexOf(int ch, int fromIndex) | Het retourneert de opgegeven char-waarde-index, beginnend met de opgegeven index. |
eenentwintig | int indexOf(String-subtekenreeks) | Het retourneert de opgegeven subtekenreeksindex. |
22 | int indexOf(String-subtekenreeks, int fromIndex) | Het retourneert de opgegeven subtekenreeksindex, beginnend met de opgegeven index. |
23 | Tekenreeks naarLowerCase() | Het retourneert een tekenreeks in kleine letters. |
24 | Tekenreeks naar kleine letters(landinstelling l) | Het retourneert een tekenreeks in kleine letters met de opgegeven landinstelling. |
25 | Tekenreeks naar hoofdletters() | Het retourneert een string in hoofdletters. |
26 | Tekenreeks naar hoofdletters (landinstelling l) | Het retourneert een tekenreeks in hoofdletters met de opgegeven landinstelling. |
27 | String trim() | Het verwijdert begin- en eindspaties van deze string. |
28 | statische tekenreekswaardeOf(int-waarde) | Het converteert een bepaald type naar een string. Het is een overbelaste methode. |
Ken jij?
- Waarom zijn String-objecten onveranderlijk?
- Hoe maak je een onveranderlijke klasse?
- Wat is een stringconstante pool?
- Welke code wordt door de compiler geschreven als u een tekenreeks samenvoegt met + (tekenreeksconcatenatie-operator)?
- Wat is het verschil tussen de StringBuffer- en StringBuilder-klasse?
Wat zullen we leren in String Handling?
- Concept van snaar
- Onveranderlijke reeks
- Vergelijking van snaren
- Tekenreeksconcatenatie
- Concept van subtekenreeks
- String-klassemethoden en het gebruik ervan
- StringBuffer-klasse
- StringBuilder-klasse
- Het creëren van een onveranderlijke klasse
- toString()-methode
- StringTokenizer-klasse