STRINGS
Zeichenketten, einfacher als Arrays
Hintergrund
Prinzipiell könnten Zeichenketten als Arrays
dargestellt werden
werden aber oft als Ganzes verwendet
spezieller Typ String
Länge
nicht beschrönkt
können dynamisch wachsen (Performance !)
Konstanten durch " (doppelte Anführungszeichen)
terminiert
Beispiel
String s = new String();!
String s = "Hallo";!
s = s + "Java";!
println(s); // Was wird ausgegeben ?!
Strings sind Objekte, Erzeugung mit new, oder durch Zuweisung
Operator + verkettet Strings
String s = "Hallo";!
String s2 = s;!
s2 = s2 + " Java";!
println(s2); // Was wird ausgegeben ?!
Funktionen
String s = "Hallo Java";!
println( s.charAt(0) ); // H!
println( s.charAt(4) ); // o!
println( s.indexOf('o') ); // 4!
println( s.length() ); // 10!
println( s.replace('l','w') ); // Hawwo Java!
println( s.substring(6) ); // Java!
println( s.toUpperCase() ); // HALLO JAVA!
und viele mehr …
siehe http://download.oracle.com/javase/6/docs/api/java/lang/String.html
Vergleich von Strings
String s = "Hallo";!
String s2 = s;!
if (s2 == s)!
!println("s gleich s2");!
String s3 = "Hallo";!
if (s3 == s)!
!println("s gleich s3");!
String s4 = "Hall" + "o";!
if (s4 == s)!
!println("s gleich s4");!
String s5 = "Hallo Hallo";!
String s6 = s5.substring(6);!
if (s6 == s)!
!println("s gleich s6");!
Was wird asugegeben ? Warum ????
Strings im Speicher
String
String
String
String
String
String
s = "Hallo";!
s2 = s;!
s3 = "Hallo";!
s4 = "Hall" + "o";!
s5 = "Hallo Hallo";!
s6 = s5.substring(6);!
s2
s3
s4
Hallo
s
s5
s6
Hallo Hallo
Hallo
Operator == vergleicht die Verweise (Adressen), nicht die Inhalte !
Platz für
Konstante(n)
vom Compiler
reserviert
Strings richtig vergleichen
String s = "Hallo";!
String s2 = s;!
if (s2.equals(s))!
!println("s gleich s2");!
String s3 = "Hallo";!
if (s3.equals(s))!
!println("s gleich s3");!
String s4 = "Hall" + "o";!
if (s4.equals(s))!
!println("s gleich s4");!
String s5 = "Hallo Hallo";!
String s6 = s5.substring(6);!
if (s6.equals(s))!
!println("s gleich s6");!
equals() vergleicht die Inhalte zweier Strings, equalsIgnoreCase() unabhängig
von Schreibweise
grafische Darstellung
zunächst muss ein Font definiert werden, dann kann Text ausgegeben werden !
size(200,100);!
PFont font;!
font = createFont("Arial",18);!
textFont(font);!
text("Hallo Processing", 30, 50);!
createFont() erhält den Namen des Zeichensatzes und die Größe als Parameter
text() erhält den auszugebenden String und die Koordinaten als Parameter
mögliche Fonts ausgeben:
println(PFont.list());!
Alignment
textAlign(LEFT);!
textAlign(CENTER);!
textAlign(RIGHT);!
Die Koordinaten geben als default die linke untere Ecke des Texts an.
Kann mit textAlign() geändert werden.