< Programmeren in Java

Programmeren in Java

  1. Inleiding
  2. Basis
  3. In- & uitvoer
  4. Stringbewerkingen
  5. Arrays
  6. Collections
  7. Exceptions
  8. Generics
  9. Ingebouwde functies
  10. Multithreading
  11. GUI
  12. JSP: JavaServer Pages

Klassen

  1. Klassen
  2. Overerving
  3. Geavanceerde klassen

Design Patterns

  1. Strategy Pattern

Appendices

  1. Appendix A: Installatie
  2. Appendix B: Javadoc

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

Java-code: StringDemo1.java

 1: public class StringDemo1 {
 2:    public static void main(String[] args) {
 3:      String myString = new String("abc");
 4:      String myOtherString = new String("abc");
 5:      System.out.println(myString.charAt(0));
 6:      System.out.println(myString.length());
 7:      System.out.println(myOtherString.toUpperCase());
 8:      System.out.println(myOtherString);   
 9:   }
10: }

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 een nieuwe String waarbij alle karakters zijn omgezet in hun upper case tegenhanger.

Split

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

Java-code: StringSplit1.java

1: public class StringSplit1 {
2:    public static void main(String[] args) {
3:		String tekst = "Dit,is,tekst.";
4:		String uittekst[] = tekst.split(",");
5:		System.out.println(uittekst[0]);
6:		System.out.println(uittekst[1]);
7:		System.out.println(uittekst[2]); 
8:   }
9: }

Als uitvoer krijg je:

Dit
is
tekst.

Als parameter voor de split methode 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 keer java de komma tegenkomt zal de string worden gesplitst. De split methode geeft dan een array van allemaal strings terug die kun je dan één voor één tonen op het scherm of er bewerkingen mee uitvoeren.

charAt

met charAt kun je een bepaald teken in de string verkrijgen

Java-code: StringCarAt.java

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

StringBuffer, StringBuilder

Zoals we in het voorgaande al zagen is een String niet aan te passen. Om toch gemakkelijk Strings op te kunnen bouwen zijn de StringBuffer en de StringBuilder classes 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.

Java-code: StringBuilder1.java

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

Dit programma levert als uitvoer Abc3. Met name de append() methods 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 slechts 1 object gecreëerd hoeft te worden.

toString()

In StringBuilder1.java staat op regel 6 een statement waar impliciet gebruik wordt gemaakt van een method die alle Java objecten hebben: toString(). toString() kan op elk object toegepast worden en levert een zinnige omschrijving van het object. System.out.println() roept de toString() methode aan van het StringBuilder object waar myBuilder naar wijst.


This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.