Java Strings beheersen: aanmaken, methodes en best practices
Java Strings
In deze tutorial leren we over Java-strings, hoe je ze aanmaakt en de verschillende methodes van de String-klasse met behulp van voorbeelden.
In Java is een string een reeks karakters. Bijvoorbeeld, "hello" is een string die een reeks karakters bevat: 'h', 'e', 'l', 'l' en 'o'.
We gebruiken dubbele quotes om een string in Java weer te geven. Bijvoorbeeld,
// maak een string
String type = "Java programmeren";
Hier hebben we een string-variabele genaamd type aangemaakt. De variabele is geïnitialiseerd met de string Java Programmeren.
Voorbeeld: Een String aanmaken in Java
class Main {
public static void main(String[] args) {
// strings aanmaken
String first = "Java";
String second = "Python";
String third = "JavaScript";
// strings printen
System.out.println(first); // print Java
System.out.println(second); // print Python
System.out.println(third); // print JavaScript
}
}
In het bovenstaande voorbeeld hebben we drie strings aangemaakt: first, second en third. Hier maken we strings direct aan als primitieve types.
Er is echter nog een andere manier om Java-strings aan te maken (met het new-keyword). We leren dat later in deze tutorial.
Let op: Strings in Java zijn geen primitieve types (zoals int, char, etc.). In plaats daarvan zijn alle strings objecten van een vooraf gedefinieerde klasse genaamd String.
En alle string-variabelen zijn instanties van de String-klasse.
Java String-operaties
Java String biedt verschillende methodes om verschillende operaties op strings uit te voeren. We kijken naar enkele veelgebruikte string-operaties.
1. Lengte van een String opvragen
Om de lengte van een string te vinden, gebruiken we de length()-methode van de String. Bijvoorbeeld,
class Main {
public static void main(String[] args) {
// maak een string
String greet = "Hello! World";
System.out.println("String: " + greet);
// lengte van greet opvragen
int length = greet.length();
System.out.println("Lengte: " + length);
}
}
Output
String: Hello! World Lengte: 12
In het bovenstaande voorbeeld berekent de length()-methode het totale aantal karakters in de string en retourneert het. Lees meer: Java String length().
2. Twee Java-strings samenvoegen
We kunnen twee strings in Java samenvoegen met de concat()-methode. Bijvoorbeeld,
class Main {
public static void main(String[] args) {
// eerste string aanmaken
String first = "Java ";
System.out.println("Eerste String: " + first);
// tweede string aanmaken
String second = "Programmeren";
System.out.println("Tweede String: " + second);
// twee strings samenvoegen
String joinedString = first.concat(second);
System.out.println("Samengevoegde String: " + joinedString);
}
}
Output
Eerste String: Java Tweede String: Programmeren Samengevoegde String: Java Programmeren
In het bovenstaande voorbeeld hebben we twee strings aangemaakt: first en second. Let op de statement,
String joinedString = first.concat(second);
Hier voegt de concat()-methode de second-string toe aan de first-string en wijst het toe aan de joinedString-variabele.
We kunnen ook twee strings samenvoegen met de +-operator in Java. Lees meer: Java String concat().
3. Twee strings vergelijken
In Java kunnen we twee strings vergelijken met de equals()-methode. Bijvoorbeeld,
class Main {
public static void main(String[] args) {
// 3 strings aanmaken
String first = "java programmeren";
String second = "java programmeren";
String third = "python programmeren";
// eerste en tweede strings vergelijken
boolean result1 = first.equals(second);
System.out.println("Strings first en second zijn gelijk: " + result1);
// eerste en derde strings vergelijken
boolean result2 = first.equals(third);
System.out.println("Strings first en third zijn gelijk: " + result2);
}
}
Output
Strings first en second zijn gelijk: true Strings first en third zijn gelijk: false
In het bovenstaande voorbeeld hebben we 3 strings aangemaakt: first, second en third. Hier gebruiken we de equals()-methode om te controleren of de ene string gelijk is aan de andere.
De equals()-methode controleert de inhoud van strings tijdens het vergelijken. Lees meer: Java String equals().
Let op: We kunnen ook twee strings vergelijken met de ==-operator in Java. Deze aanpak is echter anders dan de equals()-methode. Lees meer: Java String == vs equals().
Escape-karakter in Java-strings
Het escape-karakter wordt gebruikt om sommige karakters binnen een string te escapen.
Stel je voor we dubbele quotes binnen een string willen opnemen.
// dubbele quote opnemen
String example = "Dit is de "String" klasse";
Omdat strings vertegenwoordigd worden door dubbele quotes, zal de compiler "Dit is de " als de string behandelen. Daarom zal de bovenstaande code een fout veroorzaken.
Om dit op te lossen, gebruiken we het escape-karakter \ in Java. Bijvoorbeeld,
// escape-karakter gebruiken
String example = "Dit is de \"String\" klasse.";
Nu vertellen escape-karakters de compiler om dubbele quotes te escapen en de volledige tekst te lezen.
Java Strings zijn Immutable
In Java zijn strings immutable. Dit betekent dat we een string eenmaal aangemaakt, niet meer kunnen wijzigen.
Om het dieper te begrijpen, bekijk een voorbeeld:
// maak een string
String example = "Hallo! ";
Hier hebben we een string-variabele genaamd example aangemaakt. De variabele bevat de string "Hallo! ".
Stel nu dat we de string willen wijzigen.
// nog een string "Wereld" toevoegen
// aan de vorige string
example = example.concat(" Wereld");
Hier gebruiken we de concat()-methode om een andere string Wereld toe te voegen aan de vorige string.
Het lijkt alsof we de waarde van de vorige string kunnen wijzigen. Dit is echter niet true.
Laten we zien wat er gebeurd is:
- JVM pakt de eerste string "Hallo! "
- creëert een nieuwe string door "Wereld" toe te voegen aan de eerste string
- wijst de nieuwe string "Hallo! Wereld" toe aan de example-variabele
- de eerste string "Hallo! " blijft ongewijzigd
Strings aanmaken met het new-keyword
Tot nu toe hebben we strings aangemaakt als primitieve types in Java.
Omdat strings in Java objecten zijn, kunnen we strings ook aanmaken met het new-keyword. Bijvoorbeeld,
// maak een string met het new-keyword
String name = new String("Java String");
In het bovenstaande voorbeeld hebben we een string name aangemaakt met het new-keyword.
Hier wordt de String()-constructor aangeroepen wanneer we een string-object aanmaken. Lees meer over constructors: Java Constructor.
Let op: De String-klasse biedt diverse andere constructors om strings aan te maken. Lees meer: Java String (officiële Java-documentatie).
Voorbeeld: Java-strings aanmaken met het new-keyword
class Main {
public static void main(String[] args) {
// maak een string met new
String name = new String("Java String");
System.out.println(name); // print Java String
}
}
String aanmaken met literals vs new-keyword
Nu we weten hoe strings aangemaakt worden met string-literals en het new-keyword, laten we zien wat het grootste verschil is.
In Java onderhoudt de JVM een string pool om al zijn strings in het geheugen op te slaan. De string-pool helpt bij het hergebruiken van strings.
1. Bij het aanmaken van strings met string-literals,
String example = "Java";
Hier geven we direct de waarde van de string (Java). Daarom controleert de compiler eerst de string-pool om te zien of de string al bestaat.
- Als de string al bestaat, wordt er geen nieuwe string aangemaakt. In plaats daarvan wijst de nieuwe referentie example naar de al bestaande string (
Java). - Als de string niet bestaat, wordt de nieuwe string (
Java) aangemaakt.
2. Bij het aanmaken van strings met het new-keyword,
String example = new String("Java");
Hier wordt de waarde van de string niet direct opgegeven. Daarom wordt een nieuwe "Java"-string aangemaakt, zelfs al is "Java" al in het geheugen-pool aanwezig.
Methodes van Java String
Naast de bovenstaande zijn er diverse string-methodes in Java. Hier zijn enkele van die methodes:
| Methodes | Beschrijving |
|---|---|
| contains() | controleert of de string een substring bevat |
| substring() | retourneert de substring van de string |
| join() | voegt de gegeven strings samen met de delimiter |
| replace() | vervangt het gespecificeerde oude karakter door het nieuwe karakter |
| replaceAll() | vervangt alle substrings die het regex-patroon matchen |
| replaceFirst() | vervangt de eerste matchende substring |
| charAt() | retourneert het karakter op de gespecificeerde locatie |
| getBytes() | converteert de string naar een array van bytes |
| indexOf() | retourneert de positie van het gespecificeerde karakter |
| compareTo() | vergelijkt twee strings in woordenboekvolgorde |
| compareToIgnoreCase() | vergelijkt twee strings, case-gevoeligheid negerend |
| trim() | verwijdert leading en trailing whitespaces |
| format() | retourneert een geformatteerde string |
| split() | breekt de string in een array van strings |
| toLowerCase() | converteert de string naar lowercase |
| toUpperCase() | converteert de string naar uppercase |
| valueOf() | retourneert de string-representatie van het gespecificeerde argument |
| toCharArray() | converteert de string naar een char-array |
| matches() | controleert of de string het gegeven regex matcht |
| startsWith() | controleert of de string begint met de gegeven string |
| endsWith() | controleert of de string eindigt met de gegeven string |
| isEmpty() | controleert of een string leeg is of niet |
| intern() | retourneert de canonieke representatie van de string |
| contentEquals() | controleert of de string gelijk is aan charSequence |
| hashCode() | retourneert een hash-code voor de string |
| subSequence() | retourneert een subsequence uit de string |
Java
- C# Strings: Fundamentals, Operaties & Geavanceerde Technieken
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java interfaces meesteren: concepten, implementatie en best practices
- String representaties in Java Enums meesteren
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java String.charAt() begrijpen: Syntaxis, Retourtype, Exceptions en Praktisch Voorbeeld
- Java String.endsWith() beheersen: Controleren op String-suffixen met voorbeelden
- Java String Vervanging beheersen: replace(), replaceAll() en replaceFirst() uitgelegd
- Java String toLowerCase() & toUpperCase(): Tekstcase Converteren met Locale Awareness
- Een char omzetten naar een String in Java – Praktische voorbeelden en best practices