Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
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 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort

Download:
- ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel (8. Auflage)

Java ist auch eine Insel (8. Aufl.)
8., aktual. Auflage, geb., mit DVD
1.475 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1371-4
Pfeil 4 Der Umgang mit Zeichenketten
Pfeil 4.1 Einzelne Zeichen mit der Character-Klasse behandeln
Pfeil 4.2 Strings und deren Anwendung
Pfeil 4.2.1 String-Literale als String-Objekte für konstante Zeichenketten
Pfeil 4.2.2 String-Länge und Test auf Leerstring
Pfeil 4.2.3 Nach enthaltenen Zeichen und Zeichenfolgen suchen
Pfeil 4.2.4 Gut, dass wir verglichen haben
Pfeil 4.2.5 String-Teile extrahieren
Pfeil 4.2.6 Strings anhängen, Groß-/Kleinschreibung und Leerraum
Pfeil 4.2.7 Suchen und ersetzen
Pfeil 4.2.8 String-Objekte mit Konstruktoren neu anlegen
Pfeil 4.3 Konvertieren zwischen Primitiven und Strings
Pfeil 4.3.1 Unterschiedliche Typen in String-Repräsentationen konvertieren
Pfeil 4.3.2 String in primitives Element konvertieren
Pfeil 4.4 Veränderbare Zeichenketten mit StringBuilder/StringBuffer
Pfeil 4.4.1 Anlegen von StringBuilder-/StringBuffer-Objekten
Pfeil 4.4.2 Die Länge eines StringBuilder-/StringBuffer-Objekts
Pfeil 4.4.3 Daten anhängen
Pfeil 4.4.4 Zeichen(folgen) setzen, erfragen, löschen und umdrehen
Pfeil 4.4.5 Vergleichen von String/StringBuilder/StringBuffer
Pfeil 4.4.6 hashCode() bei StringBuffer/StringBuilder
Pfeil 4.5 Sprachabhängiges Vergleichen und Normalisierung
Pfeil 4.5.1 Die Klasse Collator
Pfeil 4.5.2 Effiziente interne Speicherung für die Sortierung
Pfeil 4.5.3 Normalisierung
Pfeil 4.6 Reguläre Ausdrücke
Pfeil 4.6.1 Arbeiten mit der Fassade: String.matches()
Pfeil 4.6.2 Die Klassen Pattern und Matcher
Pfeil 4.6.3 Quantifizierer und Wiederholungen
Pfeil 4.6.4 Finden und nicht matchen
Pfeil 4.6.5 Gierige und nicht gierige Operatoren
Pfeil 4.6.6 Mit MatchResult alle Ergebnisse einsammeln
Pfeil 4.7 Zerlegen von Zeichenketten
Pfeil 4.7.1 Splitten von Zeichenketten mit split()
Pfeil 4.7.2 Die Klasse Scanner
Pfeil 4.7.3 StringTokenizer
Pfeil 4.7.4 BreakIterator als Zeichen-, Wort-, Zeilen- und Satztrenner
Pfeil 4.8 Zeichenkodierungen und Base64
Pfeil 4.8.1 Über die Klasse String Kodierungen vornehmen
Pfeil 4.8.2 Konvertieren mit OutputStreamWriter-Klassen
Pfeil 4.8.3 Das Paket java.nio.charset
Pfeil 4.8.4 Base64-Kodierung
Pfeil 4.9 Formatieren von Ausgaben
Pfeil 4.9.1 Formatieren mit format() aus String
Pfeil 4.9.2 Die Format-Klassen im Überblick
Pfeil 4.9.3 Zahlen, Prozente und Währungen mit NumberFormat und DecimalFormat formatieren
Pfeil 4.10 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

4.3 Konvertieren zwischen Primitiven und Strings Zur nächsten ÜberschriftZur vorigen Überschrift

Bevor ein Datentyp auf dem Bildschirm ausgegeben, zum Drucker geschickt oder in einer ASCII-Datei gespeichert werden kann, muss das Java-Programm ihn in einen String konvertieren. Wenn wir etwa die Zahl 7 ohne Umwandlung ausgäben, 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. Diesen muss die Anwendung in einem zweiten Schritt in eine Ganzzahl konvertieren, um etwa eine Altersabfrage zu realisieren.


Galileo Computing - Zum Seitenanfang

4.3.1 Unterschiedliche Typen in String-Repräsentationen konvertieren Zur nächsten ÜberschriftZur vorigen Überschrift

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.

Unterschiedliche Ausgabeformate (Binär, Hex, Oktal)

Neben der Funktion String.valueOf(number), die eine Zahl als String-Repräsentation im vertrauten Dezimalsystem ausgibt, gibt es vier weitere Varianten für die binäre, hexadezimale und oktale Darstellung sowie für die Darstellung einer beliebigen Basis. Die Funktionen sind allerdings nicht als statische Methoden bei String, sondern als statische Funktionen der Klassen Integer und Long festgemacht.


final class Long | Integer 
extends Number 
implements Comparable<Long> | Comparable<Integer>, Serializable

  • static String toBinaryString( int | long i )
  • static String toOctalString( int | long i )
  • static String toHexString( int | long i )
    Erzeugt eine Binärrepräsentation (Basis 2)/Oktalzahlrepräsentation (Basis 8)/Hexadezimalrepräsentation (Basis 16) der vorzeichenlosen Zahl.
  • static String toString( int | long i, int radix )
    Erzeugt eine String-Repräsentation der Zahl zur angegebenen Basis.

Wir dürfen nicht vergessen, dass das Format der Übergabe int beziehungsweise long ist und nicht byte. Dies führt zu Ausgaben, die einkalkuliert werden müssen. Genauso werden führende Nullen grundsätzlich nicht mit ausgegeben.

Listing 4.7 ToHex.java, main()

System.out.println( "15=" + Integer.toHexString(15) );     // 15=f 
System.out.println( "16=" + Integer.toHexString(16) );     // 16=10 
System.out.println( "127=" + Integer.toHexString(127) );   // 127=7f 
System.out.println( "128=" + Integer.toHexString(128) );   // 128=80 
System.out.println( "255=" + Integer.toHexString(255) );   // 255=ff 
System.out.println( "256=" + Integer.toHexString(256) );   // 256=100 
System.out.println( "-1=" + Integer.toHexString(-1) );     // –1=ffffffff

Galileo Computing - Zum Seitenanfang

4.3.2 String in primitives Element konvertieren topZur vorigen Überschrift

Zum Parsen eines Strings – zum Beispiel in eine Ganzzahl – ist nicht die Klasse String verantwortlich, sondern spezielle Klassen, die für jeden primitiven Datentyp vorhanden sind. Die Klassen deklarieren statische parseXXX()-Funktionen, wie die folgende Tabelle zeigt:


Klasse Konvertierungsfunktion

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 Funktion 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 Funktion parseBoolean() ist die Groß-/Kleinschreibung irrelevant.

Eine spezialisierte Methode für eine gegebene Basis ist Integer.parseInt(String s, int radix). Diese ist gut für Hexadezimalzahlen mit der Basis 16. Dazu einige Anwendungsfälle:


Tabelle 4.1 Beispiele für Integer.parseInt() mit unterschiedlichen Zahlenbasen

Konvertieraufruf Ergebnis

parseInt("0", 10)

0

parseInt("473", 10)

473

parseInt("-0", 10)

0

parseInt("-FF", 16)

–255

parseInt("1100110", 2)

102

parseInt("2147483647", 10)

2147483647

parseInt("-2147483648", 10)

–2147483648

parseInt("2147483648", 10)

throws NumberFormatException

parseInt("99", 8)

throws NumberFormatException

parseInt("Papa", 10)

throws NumberFormatException

parseInt("Papa", 27)

500050


parseXXX() und Leerzeichen

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

Das, 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.charAt(0).




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun





 Coding for Fun


 Buchempfehlungen
Zum Katalog: Objektorientierte Programmierung





 Objektorientierte
 Programmierung


Zum Katalog: Einstieg in Eclipse 3.4






 Einstieg in
 Eclipse 3.4


Zum Katalog: Java 6 lernen mit Eclipse






 Java 6 lernen
 mit Eclipse


Zum Katalog: NetBeans Platform 6






 NetBeans
 Platform 6


Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
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