Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Die Funktionsbibliothek
10 Threads und nebenläufige Programmierung
11 Raum und Zeit
12 Datenstrukturen und Algorithmen
13 Dateien und Datenströme
14 Die eXtensible Markup Language (XML)
15 Grafische Oberflächen mit Swing
16 Grafikprogrammierung
17 Netzwerkprogrammierung
18 Verteilte Programmierung mit RMI und Web-Services
19 JavaServer Pages und Servlets
20 Applets
21 Midlets und die Java ME
22 Datenbankmanagement mit JDBC
23 Reflection und Annotationen
24 Logging und Monitoring
25 Sicherheitskonzepte
26 Java Native Interface (JNI)
27 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort
Download: - ZIP, ca. 12,5 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> /Java-Insel | vor >>
Java ist auch eine Insel von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel 7., aktualisierte Auflage geb., mit DVD (November 2007) 1.492 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1146-8 |
| 4 Der Umgang mit Zeichenketten
|  | 4.1 Einzelne Zeichen mit der Character-Klasse behandeln
|  | 4.2 Strings und deren Anwendung
|  |  | 4.2.1 String-Literale als String-Objekte für konstante Zeichenketten
|  |  | 4.2.2 String-Länge und Test auf Leerstring
|  |  | 4.2.3 Nach enthaltenen Zeichen und Zeichenfolgen suchen
|  |  | 4.2.4 Gut, dass wir verglichen haben
|  |  | 4.2.5 String-Teile extrahieren
|  |  | 4.2.6 Strings anhängen, Groß-/Kleinschreibung und Leerraum
|  |  | 4.2.7 Suchen und ersetzen
|  |  | 4.2.8 String-Objekte mit Konstruktoren neu anlegen
|  | 4.3 Konvertieren zwischen Primitiven und Strings
|  |  | 4.3.1 Unterschiedliche Typen in Zeichenketten konvertieren
|  |  | 4.3.2 String in primitives Element konvertieren
|  | 4.4 Veränderbare Zeichenketten mit StringBuffer/StringBuilder
|  |  | 4.4.1 Anlegen von StringBuffer/StringBuilder-Objekten
|  |  | 4.4.2 Die Länge eines StringBuffer/-Builder-Objekts
|  |  | 4.4.3 Daten anhängen
|  |  | 4.4.4 Zeichen(folgen) setzen, erfragen, löschen und umdrehen
|  |  | 4.4.5 Vergleichen von String/StringBuffer/StringBuilder
|  |  | 4.4.6 hashCode() bei StringBuffer/StringBuilder
|  | 4.5 Sprachabhängiges Vergleichen und Normalisierung
|  |  | 4.5.1 Die Klasse Collator
|  |  | 4.5.2 Effiziente interne Speicherung für die Sortierung
|  |  | 4.5.3 Normalisierung
|  | 4.6 Reguläre Ausdrücke
|  |  | 4.6.1 Die Klassen Pattern und Matcher
|  |  | 4.6.2 Mit MatchResult alle Ergebnisse einsammeln
|  | 4.7 Zerlegen von Zeichenketten
|  |  | 4.7.1 Splitten von Zeichenketten mit split()
|  |  | 4.7.2 split() in Pattern
|  |  | 4.7.3 Die Klasse Scanner
|  |  | 4.7.4 StringTokenizer
|  |  | 4.7.5 BreakIterator als Zeichen-, Wort-, Zeilen- und Satztrenner
|  | 4.8 Zeichenkodierungen und Base64
|  |  | 4.8.1 Über die Klasse String Kodierungen vornehmen
|  |  | 4.8.2 Konvertieren mit OutputStreamWriter-Klassen
|  |  | 4.8.3 Das Paket java.nio.charset
|  |  | 4.8.4 Base64-Kodierung
|  | 4.9 Formatieren von Ausgaben
|  |  | 4.9.1 Formatieren mit format() aus String
|  |  | 4.9.2 Die Format-Klassen im Überblick
|  |  | 4.9.3 Zahlen, Prozente und Währungen mit NumberFormat und DecimalFormat formatieren
|  |  | 4.9.4 Ausgaben mit MessageFormat formatieren
|  | 4.10 Zum Weiterlesen
## 4.3 Konvertieren zwischen Primitiven und Strings Bevor ein Datentyp auf dem Bildschirm ausgegeben, zum Drucker geschickt oder in einer ASCII-Datei gespeichert werden kann, muss das Java-Programm es in einen String konvertieren. Wenn wir etwa die Zahl 7 ohne Umwandlung ausgeben würden, hätten wir keine 7 auf dem Bildschirm, sondern einen Pieps aus dem Lautsprecher – je nach Implementierung. Auch umgekehrt ist eine Konvertierung wichtig: Gibt der Benutzer in einem Dialog sein Alter an, ist das zuerst immer ein String. Dieser muss die Anwendung in einem zweiten Schritt in eine Ganzzahl konvertieren, um etwa eine Altersabfrage zu realisieren. ### 4.3.1 Unterschiedliche Typen in Zeichenketten konvertieren Bevor ein Datentyp auf dem Bildschirm ausgegeben, zum Drucker geschickt oder in einer ASCII-Datei gespeichert werden kann, muss er in einen String konvertiert werden. Die statischen überladenen Funktionen String.valueOf() liefern die String-Repräsentation eines primitiven Werts oder eines Objekts.
Beispiel Konvertierungen einiger Datentypen in Strings:
    String s1 = String.valueOf( 10 );             // 10
    String s2 = String.valueOf( Math.PI );        // 3.141592653589793
    String s3 = String.valueOf( 1 < 2 );          // true
    String s4 = String.valueOf( new Date() );     // Mon Feb 06 14:40:38 CEST 2006
Sehen wir uns abschließend die Implementierungen von valueOf(Object) an:
    public static String valueOf( Object obj ) {
      return (obj == null) ? "null" : obj.toString();
    }
Die String-Umsetzung wird an das Objekt delegiert, denn jedes Objekt besitzt eine toString()-Methode. Die Sonderbehandlung testet, ob null übergeben wurde, und liefert dann einen gültigen String mit dem Inhalt »null«. Auch liefert eine Ausgabe wie System.out.println(null) den String »null«, genauso ergibt System.out.println(null + "0") die Ausgabe »null0«, wenn null als Glied in der Additionskette steht. ### 4.3.2 String in primitives Element konvertieren Zum Parsen eines Strings – in zum Beispiel eine Ganzzahl – ist nicht die Klasse String verantwortlich, sondern spezielle Klassen, die für jeden primitiven Datentyp vorhanden sind. Die Klassen deklarieren statische parseXXX()-Methoden, wie die folgende Tabelle zeigt:
Klasse | Konvertierungsmethode
java.lang.Boolean | parseBoolean( String s )
java.lang.Byte | parseByte( String s )
java.lang.Short | parseShort( String s )
java.lang.Integer | parseInt( String s )
java.lang.Long | parseLong( String s )
java.lang.Double | parseDouble( String s )
java.lang.Float | parseFloat( String s )
Kann eine Methode eine Konvertierung nicht durchführen, weil sich der String nicht konvertieren lässt, löst sie eine NumberFormatException aus. Das ist zum Beispiel der Fall, wenn parseDouble() als Dezimaltrenner ein Komma statt eines Punktes empfängt. Bei der Methode parseBoolean() ist die Groß-/Kleinschreibung irrelevant.
Beispiel Konvertiere die Zahl 12345, die als String vorliegt, in eine Ganzzahl:
    String number = "12345";
    int integer = 0;
    try
    {
      integer = Integer.parseInt( number );
    }
    catch ( NumberFormatException e ) {
      System.err.println( "Fehler beim Konvertieren" );
    }
Die NumberFormatException ist eine nicht-geprüfte Exception – mehr zu Ausnahmen in Kapitel 8 –, muss also nicht zwingend in einem try-catch-Block stehen.
Die Konvertierungsfunktion parseInt() schneidet keine Leerzeichen ab und würde einen Parserfehler melden, wenn der String etwa mit einem Leerzeichen endet. (Die Helden der Java-Bibliothek haben allerdings bei Float.parseFloat() und Double.parseDouble() anders gedacht. Hier wird die Zeichenkette vorher schlank getrimmt.)
Beispiel Leerzeichen zur Konvertierung einer Ganzzahl abschneiden:
    String s = " 1234    ".trim();            // s = "1234"
    int i = Integer.parseInt( s );            // i = 1234
Dass, was bei einem String.valueOf() als Ergebnis erscheint – und das ist auch das, worauf zum Beispiel System.out.print() basiert – kann parseXXX() wieder in den gleichen Wert zurückverwandeln.
Hinweis Eine Funktion Character.parseCharacter(String) fehlt. Eine vergleichbare Realisierung ist, auf das erste Zeichen eines Strings zuzugreifen, etwa so: char c = string.char-At(0).
### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.
Name |
E-Mail |
Ihr Kommentar |
<< zurück | <top> | vor >>

Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de