Java and other languages String Methods

Beispiel - Java String methods

Ein STRING ist eine Sequenz von Zeichen (alphanumerisch, numerisch und Sonderzeichen).
Die STRING Klasse beinhaltet Methoden zum prüfen und behandeln von bestimmten Zeichen.

Mit dem vorgegebenen String Methoden kann man:

  • Strings vergleichen (compare)
  • in Strings suchen (IndexOf)
  • Teile vom String extrahieren (substring)
  • bestimmte Zeichen austauschen (replace)
  • oder zerteilen (split)
  • wieder zusammen fügen (concat)
  • umwandeln in Klein- oder Großbuchstaben (toUppercase, toLowerCase)

Strings werden immer innerhalb
eines doppeltes Anführungszeichen deffiniert:

         String sName = "Raimund";

und Zeichen (characters)
werden immer innerhalb eines einfachen Anführungszeichen deffiniert.

         char data[] = {'R', 'A', 'I'};

Auch ein String ist nur ein Objekt

Wenn man es genau betrachtet,
ist ein Java-String (und Strings andere OO-Sprachen) auch nur ein Objekt.
- java.lang.String

Man könnte aber explizit
von dem Java-String ein Objekt referenzieren
- java.lang.Object

Indem ich ein Objekt initialisiere (initialisation)
und dem String ein Objekt zuordne (assignment)


         String a = "abc";
         Object b = a;

Die gebräuchlichste Methode
um einen String zu erzeugen
(deklaration und initialisation in einem Schritt)

         String sName = "Raimund Stachowiak";

In diesem Falle ist "Raimund Stachowiak"
ein String Literal,
also eine Zeichenfolge,
eingebettet in doppelte Anführungszeichen.
den Wert dieses Strings kann man zur Laufzeit ändern.

Und wie auch bei jedem anderen Objekt,
kann man auch ein String Objekt
mit dem Schlüsselwort "new" und einem Konstruktor (constructor) erzeugen.

         String sName = new String("Raimund Stachowiak");

Die Bezeichung String-Literal findet man auch häufig bei Fehlermeldungen,
zum Beispiel beim Insert or Update einer Datenbanktabelle:
string literal too long

String nicht änderbar, mit static

Es gibt auch Fälle,
wo man nicht möchte,
dass ein String während der Laufzeit änderbar ist.

Beispielsweise ein ODBC connection Sting,
sollte immer gleich bleiben.

Hierfür ist das Schlüsselword "static" wichtig.

Wurde als ein String mit "static" deklariert und initialisiert,
so ist der String-Wert immer gleich und kann nicht geändert werden.
Hier ein Beispiel mit privat static String:


         private final static String sODBCconnect = "username:xyz;password:12345";

Beispiel - Java split string

Die Java split string funktion ist ähnlich wie bei anderen Sprachen
recht einfach in eine Applikation zu implemetieren.

Beispiel split String:
zunächst deklarieren wir einen String
und initieren dieses String Objekt "sName" gleich mit einem Wert:


         String sName = "Raimund-Stachowiak";

Dieser String wird dann an einen Array übergeben.
Also wir initialisieren einen (String-) Array vom String Objekt: sName

         String[] aName = sName.split("-");

dann machen wir die Ausgabe (mit System.out.print) vom String Array

         System.out.print("Vorname:" + aName[0]);
         System.out.print("Nachname:" + aName[1]);

Das obige Beispiel ist ein wenig gutgläubig,
denn wir gehen davon aus, dass der Array nur die 2 Werte enthält.

Etwas besser geht es,
wenn man noch Zusatzprüfungen (validierungen) einbaut:
  • check String indexOf
  • check array length
  • oder diese in eine FOR-Schleife einbaut


Beispiel ohne FOR-Schleife:

         String sName = "Raimund-Stachowiak";
         if(sName.indexOf("-")){
               String[] aName = sName.split("-");
               if(aName.length  == 2){
                       System.out.print("Vorname:" + aName[0]);
                       System.out.print("Nachname:" + aName[1]);
               }
         }


Beispiel mit FOR-Schleife:
hier fällt somit die Prüfung if(aName.length == 2) weg

         String sName = "Raimund-Stachowiak";
         if(sName.indexOf("-")){
               String[] aName = sName.split("-");
               for(int i=0;i<aName.length;i++){
                        System.out.println( "aName:" + aName[i]);
                }
         }

Etwas schwieriger wird es nur,
wenn der String Sonderzeichen enthält,
die sich nicht einfach so splitten (zerlegen) lassen
Escape ist das Schlüsselword (Java Escape Sequences)

Beispiel, split String mit escape:
  • Split-String mit Sonderzeichen "Punkt" und Escape
ohne die Escape (Backslash) würde das nicht funktionieren. Um das ganze Ausmaß zu erkennen, habe ich noch den System.out.print dazu gemacht

       String sName = "raimund.doc";

       String[] aName = sName.split("\\.");

       for(int i=0;i<aName.length;i++){
                System.out.println( "aName:" + aName[i]);
       }


oder alternativ:
       System.out.println( "aName:" + aName.length);
       System.out.println( "aName:" + aName[0] + " " + aName[1]);


Comments

No comments yet.

Add Comment

* Required information
(never displayed)
 
Bold Italic Underline Strike Superscript Subscript Code PHP Quote Line Bullet Numeric Link Email Image Video
 
Smile Sad Huh Laugh Mad Tongue Crying Grin Wink Scared Cool Sleep Blush Unsure Shocked
 
1000
What is the next number: 10, 12, 14, ..?
 
Enter answer:
Captcha
Refresh
 
Enter code:
 
Notify me of new comments via email.
 
Remember my form inputs on this computer.
 
I have read and understand the privacy policy. *
 
I have read and agree to the terms and conditions. *
 
 
Powered by Commentics