Programmeren in Java/Stringbewerkingen

Uit Wikibooks
Naar navigatie springen Naar zoeken springen


Programmeren in Java In ontwikkeling. Revisiedatum: onbekend

  1. Inleiding Redelijk ontwikkeld. Revisiedatum: 22 augustus 2008
  2. Basis Goed ontwikkeld. Revisiedatum: 24 november 2007
  3. In- & uitvoer In ontwikkeling. Revisiedatum: 24 november 2007
  4. Stringbewerkingen In ontwikkeling. Revisiedatum: 24 november 2007
  5. Arrays Nog vrijwel niets. Revisiedatum: 24 november 2007
  6. Collections Nog vrijwel niets. Revisiedatum: 24 november 2007
  7. Exceptions Redelijk ontwikkeld. Revisiedatum: 24 november 2007
  8. Generics Nog vrijwel niets. Revisiedatum: 24 november 2007
  9. Ingebouwde functies Nog vrijwel niets. Revisiedatum: 20 januari 2007
  10. Multithreading Nog vrijwel niets. Revisiedatum: 20 januari 2007
  11. GUI In ontwikkeling. Revisiedatum: 24 november 2007
  12. JSP: JavaServer Pages Redelijk ontwikkeld. Revisiedatum: 24 november 2007

Klassen

  1. Klassen Goed ontwikkeld. Revisiedatum: 24 november 2007
  2. Overerving In ontwikkeling. Revisiedatum: 20 januari 2007
  3. Geavanceerde klassen In ontwikkeling. Revisiedatum: 24 november 2007

Design Patterns

  1. Strategy Pattern Nog vrijwel niets. Revisiedatum: 26 december 2010

Appendices

  1. Appendix A: Installatie In ontwikkeling. Revisiedatum: 24 november 2007
  2. Appendix B: Javadoc In ontwikkeling. Revisiedatum: 24 november 2007


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]

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[bewerken]

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[bewerken]

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[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 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()[bewerken]

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.




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