~Java4Beginners~
~Java4Beginners~

String

Die Klasse String stellt für uns eine der wichtigen Klassen dar. Mit ihr ist es möglich, mit Zeichenketten zu arbeiten. Der Datentyp char ermöglicht es lediglich 1 Zeichen aufzunehmen, während wir mit dem Objekt String eine komplexe Zeichenkette aufnehmen können. Obwohl ich bis jetzt noch nicht näher auf die Klasse String eingegangen bin, haben wir den Leistungsumfang der Klasse String von Anfang an genutzt. Wenn Sie sich an das erste Programm HalloWorld.java erinnern, haben wir in der System.out.println()-Anweisung die Zeichenkette "Hallo World" ausgegeben. Diese Ausgabe in der Form war nur möglich, da wir die Klasse String dafür genutzt haben.

Wann immer ein Java-Compiler Zeichen zwischen zwei " findet, erstellt er automatisch ein Objekt der Klasse String, mit dem dazugehörigen Zeicheninhalt.

Unsere Ausgabe von HalloWorld.java hätte auch anders verwirklicht können, in dem wir die Zeichenkette einer Variablen vom Objekttyp String zuweisen und mit der System.out.println()-Methode den Inhalt der Variablen ausgeben.

Ein String ist eine Aneinanderreihung von Zeichen.

Die Klasse String stellt uns einige Methoden zur Verfügung, wie
  • Auslesen einzelner Zeichen
  • Strings miteinander vergleichen
  • Zeichen suchen
  • Teilstrings auslesen und bilden
  • Strings in Groß- oder Kleinbuchstaben ausgeben.
Ein String besteht aus einzelnen Zeichen innerhalb einer Zeichenkette, die sich durch einen Index, beginnend mit 0, definieren.

D. h. dass jedes einzelne Zeichen eines Strings über einen Index angesprochen werden kann. Dies wird notwendig, wenn wir mit Teilstrings arbeiten.

Methoden der Klasse String

Methode Beschreibung
length() Die Methode length() wird verwendet, um die Anzahl der Zeichen innerhalb eines Strings zu ermitteln.
charAt(index) Gibt das am Index stehende Zeichen zurück (String-Index verhält sie wie Arrays, d. h. beginnt bei 0)
substring(int i, int j) liest einen Substring beginnend von Index i bis Index j-1 aus.
substring(int i) liest einen Substring beginnend von Index i bis zum Ende des Strings aus.
.equals(String) vergleicht Strings miteinander. Wenn 2 Strings miteinander verglichen werden, niemals mit == arbeiten. Im Beispielprogramm können Sie ersehen, dass dies zu fehlerhaften Ergebnissen führen kann.
String1.compareTo(String2) Vergleicht 2 String-Objekte Zeichenweise miteinander (nach ASCII-Codierung) und liefert 3 mögliche Zustände zurück.
concat fügt dem String eine weitere Zeichenkette hinzu.
toLowerCase() Konvertiert alle Zeichen wenn möglich zu kleingeschriebenen Buchstaben
toUpperCase() Konvertiert alle Zeichen wenn möglich zu großgeschriebenen Buchstaben.

equals


    String name = "Karl-Heinz";
    boolean vergleichen = "Heinz" == name.substring(5);
name.substring(5); liefert als Ergebnis Heinz. Wenn allerdings "Heinz" == name.substring(5) miteinander verglichen wird, kann Java keine Übereinstimmung feststellen.

Erst mit der Verwendung der equals()-Methode kommt das korrekte Ergebnis zustande, nämlich true.

Da es sich bei String um ein Objekt und keinen Datentyp handelt, besteht beim Verwenden von Vergleichsoperatoren immer ein Riskiko, dass nicht das gewünschte Ergebnis angezeigt wird.

compareTo()

Die Funktion string1.compareTo(string2) liefert als Ergebnis entweder ein < 0 , wenn string1 im Vergleich kleiner ist als string2, bzw. ein >0, wenn string1 im Vergleich größer ist als string 2, bzw. eine 0, wenn beide Strings identisch sind. Die Ermittlung erfolgt anhand der ASCII-Tabelle Zeichenweise.
String1 String2 Rückgabewert string1.compareTo(string2) Grund
AAA ABC < 0 Das erste A ist bei beiden gleich, somit wird das zweite Zeichen verglichen. In der ASCII-Tabelle hat A einen kleineren Wert wie B und somit ist bei dem Objektvergleich der String1 kleiner als String2, und somit das Ergebnis -1.
aaa AAA > 0 Laut ASCII-Tabelle hat ein kleines a die Wertigkeit 97 und ein großes A die Wertigkeit 67. Somit ist String 1 größer als String2 und das Ergebnis ist somit >0.

concat

Herr".concat(" Müller") kann ebenso mit "Herr "+"Müller" erzeugt werden. Für die Verknüpfung von Zeichenketten ist somit nicht zwingend die Verknpfügungsfunktion concat notwendig, sondern es kann durch den Verknüpfungsoperator + das gleiche Ergebnis erreicht werden.

Beispielprogramm


/**
 * Beispielprogramm für String-Manipulationen
 * @author Markus Badzura
 */
public class Strings 
{
    public static void main(String[] args) 
    {
        String name = "Karl-Heinz";
        int laenge = name.length();
        System.out.println(laenge);
        System.out.println(name.charAt(5));
        System.out.println(name.substring(0,4));
        System.out.println(name.substring(5));
        boolean vergleichen = "Heinz" == name.substring(5);
        System.out.println(vergleichen);
        vergleichen = "Heinz".equals(name.substring(5));
        System.out.println(vergleichen);
        System.out.println("AAA".compareTo("ABC"));
        System.out.println("aaa".compareTo("AAA"));
        System.out.println("Herr ".concat("Müller"));
        System.out.println(name.toUpperCase());
        System.out.println(name.toLowerCase());
    }
}

Die Split-Methode

Mit der Split-Methode haben wir die Möglichkeit, verschiedene Substrings zu bilden. Die Trennung erfolgt hierbei mit einem Zeichen, welches wir angeben. Diese Methode verwenden wir, wenn wir Daten aus einer CSV-Datei auslesen.

Nachfolgendem Beispiel liegt ein config-Eintrag zu Grunde.

    PON: 62,70,74,77,98,MB2,MB6
Dieser Eintrag aus einer config.txt-Datei wird ausgelesen und einer String-Vaiable zugewiesen.

                    try
                    {
                        if("PON:".equals(inhalt.substring(0,4))) PON = (inhalt.substring(5));
                    }
                    catch(StringIndexOutOfBoundsException | NullPointerException e){}  
Da in der Anwendung allerdings die einzelnen Bezeichnungen benötigt werden, wird die Zeichenkette PON in Ihre einzelnen Bestandteile zerlegt und einem String-Array zugewiesen.

    /**
     * Zerlegen der Prüfungsordnernummern in einzelne Ziffern, 
     * Trennung erfolgt am ','
     * @return temp String[] mit den einzelnen Prüfungsordnernummern
     * @author Markus Badzura
     * @since 2.1.003
     */
    public String[] getPON()
    {
      String[] temp = PON.split(",");
      return temp;
    }
Die Stringfunktion split benötigt als Parameter das Zeichen, welches als Trennzeichen in unserer Zeichenkette dient.
nach oben Java4Beginners -- Seitenversion 1.01 -- Stand: 2017-06-19