Programmeren in Java/Strings

Uit Wikibooks

Programmeren in Java In ontwikkeling. Revisiedatum: onbekend

Inleiding Redelijk ontwikkeld. Revisiedatum: 22 augustus 2008

Installatie In ontwikkeling. Revisiedatum: 26 decemeber 2020

Hulpmiddelen Nog vrijwel niets. Revisiedatum: 26 decemeber 2020
  1. Booleaanse logica Nog vrijwel niets. Revisiedatum: 30 december 2020
  2. Conditionele blokken Goed ontwikkeld. Revisiedatum: 24 april 2021
  3. Lussen Goed ontwikkeld. Revisiedatum: 24 Februari 2021
  4. Methoden Nog vrijwel niets. Revisiedatum: 30 december 2020
  5. Arrays Goed ontwikkeld. Revisiedatum: 30 december 2020
  6. Strings In ontwikkeling. Revisiedatum: 24 november 2007
  7. Exceptions Redelijk ontwikkeld. Revisiedatum: 24 november 2007
  8. Commandoregel-argumenten Goed ontwikkeld. Revisiedatum: 24 Februari 2021
  9. Invoer van een toetstenbord Nog vrijwel niets. Revisiedatum: 24 Februari 2021
  10. Multithreading Nog vrijwel niets. Revisiedatum: 20 januari 2007
  11. GUI In ontwikkeling. Revisiedatum: 24 november 2007
  12. In- & uitvoer In ontwikkeling. Revisiedatum: 24 november 2007
Appendices

Bewerkingen op tekenreeksen (in het Engels: String) zijn altijd een belangrijk onderdeel van algemeen toepasbare programmeertalen. In Java is de class String de representatie van een tekenreeks. Een String in Java is onveranderlijk, dat wil zeggen dat de tekenreeks die wordt gerepresenteerd door een String-object niet kan wijzigen na de creatie van het object. We zullen nu een aantal voorbeelden laten zien van Strings en bewerkingen met Strings.

Veelgebruikte methods[bewerken]

public class StringDemo1 {
    public static void main(String[] args) {
        String myString = new String("abc");
        String myOtherString = new String("abc");
        System.out.println(myString.charAt(0));
        System.out.println(myString.length());
        System.out.println(myOtherString.toUpperCase());
        System.out.println(myOtherString);
    }
}

Uitvoering van dit programma levert de volgende uitvoer op:

a
3
ABC
abc

Met name de laatste twee zijn interessant: als we eerst toUpperCase() hebben uitgevoerd, waarom bestaat myString dan toch nog uit lower case tekens? Het antwoord in deze vraag is in de inleiding van dit hoofdstuk al gegeven: het String object waar myString aan refereert kan nooit meer iets anders bevatten dan de tekens abc. De uitvoer die we zien als gevolg van het statement op regel 7 is de weergave van een nieuwe String. Dit String object is na uitvoering van het statement overigens niet meer te benaderen, want er is geen variabele die er aan refereert.

De overige methods wijzen zich redelijk vanzelf: charAt() (regel 5) laat het karakter zien op en bepaalde plaats in de String. Een String kan beschouwd worden als een array van karakters, en de index van deze 'array' begint ook met 0.

length() geeft de lengte van de String aan, toUpperCase() maakt (mogelijk) een nieuwe String waarbij alle kleine letters zijn omgezet in hoofdletters.

Split[bewerken]

Split heeft als doel om een string op te splitsen in een array van substrings.

public class StringSplit1 {
    public static void main(String[] args) {
        String tekst = "Dit,is,tekst.";
        String[] uittekst = tekst.split(",");
        System.out.println(uittekst[0]);
        System.out.println(uittekst[1]);
        System.out.println(uittekst[2]);
    }
}

Als uitvoer krijg je:

Dit
is
tekst.

Als parameter voor de methode split moet je een string meegeven, deze string moet bevatten waarmee je jouw string wilt opsplitsen in dit geval is dit "," (dit kunnen ook meerdere tekens zijn). Telkens wanneer Java de komma tegenkomt zal de string worden gesplitst. De methode split geeft dan een array van strings terug, die kun je dan één voor één tonen op het scherm of er bewerkingen mee uitvoeren.

charAt[bewerken]

Met charAt kun je een bepaald teken in de string verkrijgen.

public class StringCharAt {
    public static void main(String[] args) {
        String tekst = "test";
        System.out.println("Eerste teken: " + tekst.charAt(0));
        System.out.println("Tweede teken: " + tekst.charAt(1));
        System.out.println("Derde teken: " + tekst.charAt(2));
        System.out.println("Vierde teken: " + tekst.charAt(3));
    }
}

StringBuffer, StringBuilder[bewerken]

Zoals we in het voorgaande al zagen is een String niet aan te passen. Om toch gemakkelijk Strings op te kunnen bouwen zijn de klassen StringBuffer en de StringBuilder beschikbaar. Deze zijn vrijwel aan elkaar gelijk in functionaliteit. Het voornaamste verschil is dat StringBuffer thread-safe is en StringBuilder niet. Zolang er niet door meerdere threads tegelijk aan een String wordt gebouwd is het het beste om de StringBuilder te gebruiken. Deze is overigens geïntroduceerd in Java 5, en is niet beschikbaar in de oudere versies.

public class StringBuilder1 {
    public static void main(String[] args) {
        StringBuilder myBuilder = new StringBuilder("abc");
        myBuilder.append(3);
        myBuilder.setCharAt(0, 'A');
        System.out.println(myBuilder);   
   }
}

Dit programma levert als uitvoer Abc3. Met name de methoden append() worden veel gebruikt. Het voordeel van het gebruiken van een StringBuilder boven het aan elkaar plakken van String objecten met de = operator is dat er niet telkens nieuwe objecten aangemaakt worden.

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.