1. Structuur van de String
klas
Vandaag gaan we het hebben over de String
klas. Na ints is de klasse String de meest populaire klasse in Java. Het wordt echt overal gebruikt. Het heeft een heleboel handige methoden die u maar beter kunt kennen.
De String
klasse is de enige andere klasse dan primitieve typen waarvan de letterlijke waarden in een switch
instructie kunnen worden gebruikt; de compiler gaat op een speciale manier om met het optellen van strings en String-objecten; String
objecten worden op een speciale manier in het geheugen opgeslagen. Kortom, de String
klas is een heel speciale klas.
De klasse heeft ook String
een aantal hulpklassen die tot doel hebben het werken met strings in Java verder te vereenvoudigen. Als je dit allemaal leert, zullen veel dingen echt veel gemakkelijker voor je worden om te doen. Welnu, we beginnen bij de kern van dit ecosysteem: de organisatie van de String
klas.
Reeks tekens
De structuur van de String
klasse is eigenlijk heel eenvoudig: er zit een karakterarray (char array) in die alle karakters van de string opslaat. Zo wordt bijvoorbeeld het woord 'Hallo' opgeslagen:
Eigenlijk is dit niet helemaal nauwkeurig. Omdat de String
klasse erg belangrijk is, gebruikt deze veel optimalisaties en worden de gegevens intern opgeslagen, niet als een tekenarray, maar gewoon als een byte-array.
2. Methoden van de String
klas
De String
klasse heeft veel methoden: hij heeft alleen al 18 constructors! Daarom noemen we hieronder alleen de meest elementaire:
methoden | Beschrijving |
---|---|
|
Retourneert het aantal tekens in de tekenreeks |
|
Controleert of de tekenreeks een lege tekenreeks is |
|
Controleert of de tekenreeks alleen witruimtetekens bevat: spatie, tab, nieuwe regel, enz. |
|
Retourneert het teken op de indexpositie in de tekenreeks. |
|
Retourneert een matrix van de tekens (een kopie) waaruit de tekenreeks bestaat |
|
Converteert een tekenreeks naar een reeks bytes en retourneert de reeks bytes. |
|
Splitst een tekenreeks in meerdere subtekenreeksen. |
|
Voegt meerdere subtekenreeksen samen |
|
Zet een string in de string pool . |
Meer informatie over constructors vindt u in het artikel Java Constructors .
Laten we een programma schrijven dat een bestandspad converteert van Unix-stijl naar Windows-stijl. Unix gebruikt het /
teken om mappen te scheiden, terwijl Windows het \
teken gebruikt.
Oplossing 1: een char-array gebruiken
Code | Notities |
---|---|
|
Maak een Scanner-object Lees een regel van de console Converteer een tekenreeks naar een tekenarray Loop over de tekens Als het teken is / , vervang het dan door \ . Vergeet het ontsnappen niet. Maak een nieuwe tekenreeks op basis van de tekenreeks. Geef de tekenreeks weer. |
Oplossing 2: - met behulp van de methoden split()
enjoin()
Code | Notities |
---|---|
|
Maak een Scanner-object Lees een regel van de console Converteer tekenreeks naar een reeks tekenreeksen . Het / teken wordt gebruikt als scheidingsteken (de twee extra schuine strepen zijn het resultaat van dubbele escape). Voeg alle tekenreeksen in de reeks tekenreeksen samen . De \ wordt gebruikt als scheidingsteken (we zien dat het ontsnapt is). Geef de tekenreeks weer. |
Oplossing 3: - met behulp van de replace(char oldChar, char newChar)
methode
Code | Notities |
---|---|
|
Maak een Scanner-object Lees een regel van de console Vervang gewoon het ene teken door het andere (het tweede is een escape-teken) Geef de tekenreeks weer. |
GO TO FULL VERSION