Characters und Strings Einführung in Java Folie 1 von 13 12. Mai 2011 Ivo Kronenberg Inhalt • Char Literal • Zeichensätze in Java • Darstellung Sonderzeichen • Strings • Strings Vergleichen • Objekt als String ausgeben (toString) • Performance • String Formatieren Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 2 von 13 Char Literal • Primitiver Datentyp char repräsentiert ein Zeichen (Character) • Zeichen wird zwischen (einfachen) Hochkommas dargestellt. • Können verglichen werden (alphabetisch) char ch = ‘a‘; boolen gleich = (ch == ‘a‘); • Jeder Character entspricht einem Zeichencode (numerischer Wert) • Implizite Konversion nach int, jedoch nicht umgekehrt. • Grösse ist 2 Byte Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 3 von 13 Zeichensatz ASCII 0 Characters und Strings | Ivo Kronenberg ISO-Latin-1 7 8 Unicode 16 bit 12. Mai 2011 Folie 4 von 13 Darstellung Sonderzeichen • Hexadezimale Darstellung – \uXXXX (2 Byte Hex Code) char ch = \u0061; // -> 97 dezimal -> ‚a‘ • Ersatzdarstellung Kontrollzeichen – – – – – \n \t \“ \‘ \\ Zeilenvorschub Tabluator Gänsefüsschen Hochkomma Backslash Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 5 von 13 Strings • Referenztyp • Unveränderlicher Typ • Repräsentiert Textstück • Text wird in einzelnen char abgelegt (Container) Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 6 von 13 Anwendung String • Definition String s = „abc“; String s = new String(„abc“); // alternativ • Konkatenierung String s1 = „SWS“; String s2 = s1 + „ Bern“; Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 7 von 13 Methoden auf Strings • Methoden: – char charAt(int index) – int indexOf(int ch) int length() – int lastIndexOf(int ch) – String trim() Nachlesen in Java API: http://download-llnw.oracle.com/javase/6/docs/api/ Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 8 von 13 Repräsentation als String • Primitive Datentypen – Implizite Konversion • Objekte – Automatischer Methodenaufruf toString(). – toString() darf auch explizit aufgerufen werden. – Default Implementation liefert Speicheradresse von Objekt zurück. Beispiel: java.lang.Object@e48e1b Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 9 von 13 Vergleichen von Strings • Gleichheitsoperator (==) – Nur true wenn die gleichen Objekte • equals Methode • compareTo Methode – Rückgabewert 0 wenn Strings identisch Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 10 von 13 Performance mit Strings • String Konkatenierung ist ineffizient, da fortlaufend neue Objekte erzeugt werden. • Verwendung von StringBuilder oder StringBuffer (Thread Safe) zur Optimierung. StringBuilder sb = new StringBuilder(); sb.append(„String 1“).append(„String 2“); String s = sb.toString(); Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 11 von 13 String Formatierung • Statische Methode String.format(…) • Argumente: – String mit Formatangaben (Schablone) – Substitutionswerte in Text • Formatangaben: – – – – – %d Ganze Zahl %f Floatingpoint Zahl %s String %c Zeichen %% Prozent Zeichen Beispiel: String.format(„Mwst. %.2f%%“, 8.0); // Ausgabe: Mwst. 8.00% Characters und Strings | Ivo Kronenberg 12. Mai 2011 Folie 12 von 13 String Formatierung • Formatangaben: – – – – – Spalten auffüllen: %10f Spalte mit 0 auffüllen: %010f Nachkommastellen: %.2f Linksbündig: %-10.2f Ausgabe Vorzeichen: %+.2f Characters und Strings | Ivo Kronenberg „ 7.800000“ „07.800000“ „7.80“ „7.80 „ „+7.80“ 12. Mai 2011 Folie 13 von 13