Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 4 Der Umgang mit Zeichenketten
gp 4.1 Strings und deren Anwendung
gp 4.1.1 String-Objekte für konstante Zeichenketten
gp 4.1.2 String-Länge
gp 4.1.3 Gut, dass wir verglichen haben
gp 4.1.4 String-Teile extrahieren
gp 4.1.5 Suchen und Ersetzen
gp 4.1.6 Veränderte Strings liefern
gp 4.1.7 Typen in Zeichenketten konvertieren
gp 4.2 Veränderbare Zeichenketten mit der Klasse StringBuffer
gp 4.2.1 Anlegen von StringBuffer-Objekten
gp 4.2.2 Die Länge eines StringBuffer-Objekts lesen und setzen
gp 4.2.3 Daten anhängen
gp 4.2.4 Zeichen(folgen) setzen, erfragen, löschen und umdrehen
gp 4.3 Vergleiche von Zeichenketten
gp 4.3.1 equals() in String und StringBuffer
gp 4.3.2 Sollte es ein equals() und hash() bei StringBuffer geben?
gp 4.3.3 Sprachabhängiges Vergleichen mit der Collator-Klasse
gp 4.3.4 Effiziente interne Speicherung für die Sortierung
gp 4.4 Zeichenkodierungen umwandeln
gp 4.5 Die Klasse StringTokenizer
gp 4.6 Der BreakIterator als Wort- und Satztrenner
gp 4.7 Formatieren mit Format-Objekten
gp 4.7.1 Prozente, Zahlen und Währungen ausgeben
gp 4.7.2 Ausgaben formatieren
gp 4.7.3 Dezimalzahlformatierung
gp 4.8 Reguläre Ausdrücke
gp 4.8.1 Splitten von Zeichenketten
gp 4.8.2 split() in String
gp 4.8.3 Das alternative Paket org.apache.regexp


Galileo Computing

4.4 Zeichenkodierungen umwandelntoptop

Zeichen sind in Java immer in Unicode kodiert, und ein String ist eine Folge von Zeichen. Wollen wir diese Zeichenkette etwa in eine Datei schreiben, so kann es bei Zeichen, die nicht im ASCII-Code enthalten sind, zu Problemen kommen. Die String-Klasse bietet daher die Methode getBytes(String encoding) an, die den String in eine spezielle Kodierung umwandeln kann. Eine Übersicht der verfügbaren Kodierungen (engl. encodings) ist unter http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html zu finden. Die Kodierung, die den alten IBM-Zeichensatz bezeichnet, könnte etwa »Cp850« heißen. Die Windows-NT-Konsole nutzt zum Beispiel dieses Format. Für den alten EBCDIC-Zeichensatz ist die Codepage »Cp037«. Die Kodierung übernehmen unterschiedliche Klassen, die auch etwa vom Dienstprogramm native2ascii benutzt werden. Die Klasse OutputStreamWriter erzeugt einen neuen Datenstrom mit einer neuen Kodierung.


Beispiel Abschließend soll ein Beispiel mit einem OutputStreamWriter-Objekt gezeigt werden, das die Codepage 850 verwendet, damit auch unter der DOS-Konsole die Umlaute korrekt erscheinen.

Listing 4.3 GetBytesConverter.java

import java.io.*;
public class GetBytesConverter
{
  public static void main( String args[] )
  {
    try
    {
      System.out.println( "Ich kann Ä Ü Ö und ß" );
      PrintWriter out = new PrintWriter(
        new OutputStreamWriter(System.out, "Cp850") );
      out.println( "Ich kann Ä Ü Ö und ß" );
      out.flush();
    }
    catch ( UnsupportedEncodingException e ) {
      System.err.println(e); }
  }
}





Copyright (c) Galileo Press GmbH 2004
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 GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de