Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)

Ähnliche Präsentationen


Präsentation zum Thema: "28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)"—  Präsentation transkript:

1 28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)

2 28/07/2015 java.lang.String String: Eine Sammlung von char-Zeichen (16-Bit Unicodezeichen): ● "Hallo Ich heiße Ahmad" (String) ● 'A' (char und KEIN String) ● "A"(String) ● String stellt die Klasse der nicht änderbaren (siehe nächste Folie) String-Objekten dar. ● Auch die Klassen StringBuilder und StringBuffer repräsentieren Zeichenketten in Java. Deren Verwendung ist bei häufigen Veränderungen effizienter.

3 28/07/2015 String-Konstruktion Einige Möglichkeiten der String (- Objekt) -Bildung: String str = "Ich bin ein String-Objekt"; String str2 = new String("Ich bin ein String-Objekt"); Die zweite Lösung erzeugt unnötigerweise ein zusätzliches String- Objekt, denn das Literal "Ich bin ein String-Objekt" ist ja bereits ein vollwertiges String-Objekt. String(char[] data) String(char[] value, int offset, int length) String(StringBuffer buffer) String(byte[] bytes) String(byte[] bytes, String charsetName) //charsetName: spezielle Zeichenkodierung, die die //Umwandlung von Bytes in Unicode-Zeichen festlegt....

4 28/07/2015 Einige String-Methoden System.out.println("hamburger"); String c = "hamburger".substring(4,8); // urge String cde = "cde"; System.out.println("abc" + cde); String d = cde.substring(1, 2); // d String träne = "Jede Träne kitzelt auch die Wange."; System.out.println( träne.substring( 5, 11 ) ); // Träne int l = "hamburger".length() // 9 Die Klasse String enthält viele Methoden, um einzelne Buchstaben aus Strings zu ermitteln, die Länge eines Strings zu bestimmen, Strings zu verbinden usw.. (siehe: http://java.sun.com/javase/6/docs/api/)http://java.sun.com/javase/6/docs/api/

5 28/07/2015 Einige String-Methoden System.out.println("".length()); // 0 System.out.println(" ".length()); // 1 if ("Ich bin fleißig.".contains("bin")) {…} if ("Ich bin fleißig.".indexOf("bin")!=-1) {…} String s = "Ich bin fleißig."; char first = s.charAt(0); // 'I' char last = s.charAt(s.length() – 1); // '.' System.out.println(s.replaceAll(" +", " " )); // Ich bin fleißig. System.out.println(s.replaceFirst(" +", " ")); // Ich bin fleißig.

6 28/07/2015 Strings sind immutable und final Im laufe eines Programms können sehr viele redundante String-Objekte den Speicher belagern. Um Java mehr effizient zu machen, besitzt die JVM ein spezielles Speicherbereich, den sog. String-Konstant-Pool! Sollen neue String-Objekte erzeugt werden, schaut der Compiler, ob bereits ein Klon-Objekt im Konstant-Pool bereit steht. Es kann nun sein, dass zwei Objekte, die nichts voneinander wissen, Verweise auf dasselbe String-Objekt bekommen. Damit es nicht zu Seiteneffekten kommt, sind die Strings immutable also unveränderbar. Nicht änderbar (immutable) bedeutet: Keine Methode darf ein String- Objekt verändern (z. B. einen Buchstaben im String durch einen anderen ersetzen usw..). Methoden die den Anschein machen, also ob sie einen String verändern liefern in Wahrheit lediglich ein neues String-Objekt mit den gewünschten Veränderungen zurück.

7 28/07/2015 Strings sind immutable und final "ottbert" String s = "ottbert"; s = s.toUpperCase(); "OTTBERT"

8 28/07/2015 String-Vergleich String s1 = new String(" abcdef "); String s2 = new String(" abcdef "); System.out.println(str1==str2); Der Vergleich str1 == str2 liefert dann false weil s1 und s2 offensichtlich nicht dasselbe Objekt repräsentieren!! " abcdef "

9 28/07/2015 String-Vergleich s1 == s2 liefert hier true, weil die Variablen ungewollt auf dasselbe String-Objekt aus dem Konstant-Pool zeigen...

10 28/07/2015 String-Vergleich Strings werden nicht mit Hilfe des Vergleichsoperator == auf Gleichheit geprüft, sondern mit Hilfe der Methoden equals() und equalsIgnoreCase().

11 28/07/2015 Links zu Strings http://www.gailer-net.de/tutorials/java/Notes/chap29/ch29_1.html http://openbook.galileocomputing.de/javainsel8/javainsel_04_008.htm


Herunterladen ppt "28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)"

Ähnliche Präsentationen


Google-Anzeigen