Een fragment uit een lezing met een mentor als onderdeel van de Codegym University-cursus. Schrijf je in voor de volledige cursus.


1 Strings vergelijken

Een van de meest voorkomende bewerkingen met tekenreeksen is vergelijking. De klasse String heeft meer dan tien verschillende methoden die worden gebruikt om de ene string met de andere te vergelijken. Hieronder zullen we de 8 belangrijkste bekijken.

methoden Beschrijving
boolean equals(String str)
Tekenreeksen worden als gelijk beschouwd als al hun tekens overeenkomen.
boolean equalsIgnoreCase(String str)
Vergelijkt tekenreeksen, negeert hoofdletters of kleine letters (negeert of het hoofdletters of kleine letters zijn)
int compareTo(String str)
Vergelijkt tekenreeksen, retourneert het aantal overeenkomende tekens vanaf het begin van de tekenreeks.
public int compareToIgnoreCase(String str)
Retourneert het aantal overeenkomende tekens vanaf het begin van een tekenreeks, negeert hoofdlettergebruik
boolean regionMatches(int toffset, String str, int offset, int len)
Vergelijkt delen van strings
boolean startsWith(String prefix)
Controleert of de huidige string begint met de stringprefix
boolean endsWith(String suffix)
Controleert of de huidige tekenreeks eindigt met de tekenreekssuffix

Stel dat u een programma wilt schrijven dat de gebruiker om een ​​pad naar een bestand vraagt ​​en vervolgens het bestandstype controleert op basis van de extensie. De code van zo'n programma kan er ongeveer zo uitzien:

Code Notities
Scanner console = new Scanner(System.in);
String path = console.nextLine();

if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
{
   System.out.println("This is a jpeg!");
}
else if (path.endsWith(".htm") || path.endsWith(".html"))
{
   System.out.println("This is an HTML page");
}
else if (path.endsWith(".doc") || path.endsWith(".docx"))
{
   System.out.println("This is a Word document");
}
else
{
   System.out.println("Unknown format");
}
Maak een Scannerobject
Lees een regel uit de console

Controleer of de string patheindigt met de gegeven string


2 Subtekenreeksen zoeken

Na het vergelijken van strings is de tweede meest populaire operatie het vinden van de ene string in de andere. De klasse String heeft hiervoor ook enkele methoden:

methoden Beschrijving
int indexOf(String str)
Zoekt naar de tekenreeks strin de huidige tekenreeks. Retourneert de index van het eerste teken van de eerste instantie.
int indexOf(String str, int index)
Zoekt naar de tekenreeks strin de huidige tekenreeks, waarbij de eerste indextekens worden overgeslagen. Retourneert de index van de gebeurtenis.
int lastIndexOf(String str)
Zoekt naar de tekenreeks strin de huidige tekenreeks, beginnend vanaf het einde. Retourneert de index van het eerste exemplaar.
int lastIndexOf(String str, int index)
Zoekt naar de tekenreeks strin de huidige tekenreeks vanaf het einde, waarbij de eerste indextekens worden overgeslagen.
boolean matches(String regex)
Controleert of de huidige tekenreeks overeenkomt met een patroon dat is opgegeven door een reguliere expressie.

De methoden indexOf(String)en indexOf(String, index)worden vaak in combinatie gebruikt. Met de eerste methode kunt u het eerste voorkomen van de doorgegeven subtekenreeks in de huidige tekenreeks vinden. En met de tweede methode kunt u de tweede, derde enz. Vinden door de eerste indextekens over te slaan.

Stel dat we een url hebben zoals " https://domain.com/about/reviews ", en we willen de domeinnaam vervangen door " codegym.cc ". URL's kunnen allerlei verschillende domeinnamen hebben, maar we weten het volgende:

  • De domeinnaam wordt voorafgegaan door twee schuine strepen — "//"
  • De domeinnaam wordt gevolgd door een enkele schuine streep — " /"

Dit is hoe de code voor zo'n programma eruit zou zien:

Code Notities
Scanner console = new Scanner(System.in);
String path = console.nextLine();

int index = path.indexOf("//");
int index2 = path.indexOf("/", index + 2);

String first = path.substring(0, index + 2);
String last = path.substring(index2);

String result = first + "codegym.cc" + last;
System.out.println(result);
Maak een Scanner-object
Lees een regel van de console

Haal de index op van de eerste keer dat de string voorkomt " //"
We krijgen de index van de eerste keer dat de string voorkomt /, maar kijken alleen naar het voorkomen van de karakters //.
We krijgen de string van het begin tot het einde van de tekens. //
We krijgen de string van /tot het einde.

We voegen de strings en het nieuwe domein samen.

De methoden lastIndexOf(String)en lastIndexOf(String, index)werken op dezelfde manier, alleen wordt er gezocht vanaf het einde van de tekenreeks tot het begin.



3 Subtekenreeksen maken

Een fragment uit een lezing met een mentor als onderdeel van de Codegym University-cursus. Schrijf je in voor de volledige cursus.


Naast het vergelijken van strings en het vinden van substrings, is er nog een andere zeer populaire actie: een substring halen uit een string. Toevallig liet het vorige voorbeeld je een substring()methodeaanroep zien die een deel van een string teruggaf.

Hier is een lijst met 8 methoden die subtekenreeksen van de huidige tekenreeks retourneren:

methoden Beschrijving
String substring(int beginIndex, int endIndex)
Retourneert de subtekenreeks die is opgegeven door het indexbereik beginIndex..endIndex.
String repeat(int count)
Herhaalt de huidige string n keer
String replace(char oldChar, char newChar)
Retourneert een nieuwe tekenreeks: vervangt het teken oldChardoor het tekennewChar
String replaceFirst(String regex, String replacement)
Vervangt de eerste subtekenreeks, gespecificeerd door een reguliere expressie, in de huidige tekenreeks.
public String replaceAll(String regex, String replacement)
Vervangt alle substrings in de huidige string die overeenkomen met de reguliere expressie.
String toLowerCase()
Converteert de tekenreeks naar kleine letters
String toUpperCase()
Converteert de tekenreeks naar hoofdletters
String trim()
Verwijdert alle spaties aan het begin en einde van een string

Hier is een samenvatting van de beschikbare methoden:

substring(int beginIndex, int endIndex)methode

De substringmethode retourneert een nieuwe string die bestaat uit tekens in de huidige string, beginnend bij het teken met index beginIndexen eindigend op endIndex. Zoals bij alle intervallen in Java, endIndexis het teken met index niet opgenomen in het interval. Voorbeelden:

Code Resultaat
"Hellos".substring(0, 3);
"Hel"
"Hellos".substring(1, 4);
"ell"
"Hellos".substring(1, 6);
"ellos"
"Hellos".substring(1);
"ellos"

Als de endIndexparameter niet is opgegeven (wat mogelijk is), wordt de subtekenreeks overgenomen van het teken bij beginIndex tot het einde van de tekenreeks.

repeat(int n)methode

De herhalingsmethode herhaalt eenvoudigweg de huidige reekstijden n. Voorbeeld:

Code Resultaat
"Hello".repeat(3);
"HelloHelloHello"
"Hello".repeat(2);
"HelloHello"
"Hello".repeat(1);
"Hello"
"Hello".repeat(0);
""

replace(char oldChar, char newChar)methode

De replace()methode retourneert een nieuwe string waarin alle tekens oldCharzijn vervangen door het teken newChar. Dit verandert niets aan de lengte van de string. Voorbeeld:

Code Resultaat
"Programming".replace('Z', 'z');
"Programming"
"Programming".replace('g', 'd');
"Prodrammind"
"Programming".replace('a', 'e');
"Progremming"
"Programming".replace('m', 'w');
"Prograwwing"

replaceFirst()en replaceAll()methoden

De replaceAll()methode vervangt alle exemplaren van de ene subtekenreeks door een andere. De replaceFirst()methode vervangt de eerste keer dat de doorgegeven subtekenreeks voorkomt door de opgegeven subtekenreeks. De te vervangen tekenreeks wordt gespecificeerd door een reguliere expressie. We zullen ingaan op reguliere expressies in de Java Multithreading- zoektocht.

Voorbeelden:

Code Resultaat
"Good news everyone!".replaceAll("e.", "EX");
"Good nEXs EXEXyonEX"
"Good news everyone!".replaceAll("o.", "-o-");
"G-o-d news every-o-e!"
"Good news everyone!".replaceFirst("e.", "EX");
"Good nEXs everyone!"
"Good news everyone!".replaceFirst("o.", "-o-");
"G-o-d news everyone!"

toLowerCase() and toUpperCase()methoden

We leerden deze methoden kennen toen we voor het eerst leerden over het aanroepen van de methoden van de Stringklas.

trim()methode

De trim()methode verwijdert voorloop- en volgspaties uit een string. Raakt geen spaties binnen een string (dwz niet aan het begin of einde). Voorbeelden:

Code Resultaat
"     ".trim();
""
"Hello".trim();
"Hello"
" Hello\n how are you?\n   ".trim();
"Hello\n how are you?\n"
"  Password\n   \n ".trim();
"Password\n   \n"