STRINGS

Werbung
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.
Herunterladen