8 - Zeichen und Strings Flashcards
(25 cards)
Wie werden Zeichen intern gespeichert, welches Format wird dafür verwendet und durch welchen Datentyp werden sie repräsentiert?
Zeichen werden intern durch Zahlen gespeichert. Java verwendet dafür das Unicode (16 Bit, ca. 65.000 Zeichen) Format (die ersten 128 Zeichen entsprechen dem ASCII Format). In Programmen werden Zeichen durch den Datentyp char (Character) repräsentiert.
Welche Zeichen werden hier dargestellt?
32
48 - 57
65 - 90
97 - 122
32: Leerzeichen
48 - 57: Zahlen von 0 - 9
65 - 90: Großbuchstaben A - Z
97 - 122: Kleinbuchstaben a - z
Wie viel beträgt die Distanz zwischen Großbuchstaben und Kleinbuchstaben?
a - A = 32
Wie wird ein char in einer Variable gespeichert?
Das Zeichen muss zwischen einfache Hochkomma gestellt werden ‘ ‘.
Bsp.: char c = ‘A’
Was ist der Unterschied zwischen diesen beiden Varianten?
1 - char c = ‘A’; c++;
2 - char c = ‘A’; int code = c++;
Bei 1 wird c zu ‘B’, während bei 2 die interne Zahl in code gespeichert wird (=65, anschließend wird c erhöht).
Auf welcher Ebene der Typhierarchie steht der Datentyp char?
Der Datentyp char befindet sich auf der gleichen Ebene wie short.
byte < short, char < int < long < float < double
Was machen die folgenden Hilfsfunktionen?
- Character.isLetter(char c)
- Character.toUpperCase(char c)
- Character.toLowerCase(char c)
- Character.isDigit(char c)
- Character.getName(int codePoint)
- Character.isLetter(char c): prüft, ob c ein Buchstabe ist
- Character.toUpperCase(char c): verwandelt c in einen Großbuchstaben
- Character.toLowerCase(char c): verwandelt c in einen Kleinbuchstaben
- Character.isDigit(char c): prüft, ob c eine Ziffer ist
- Character.getName(int codePoint): gibt den Unicode-Namen (\u…) für das Zeichen mit dem Code codePoint zurück
Wozu dienen Zeichenarrays?
Mit Zeichenarrays hat man die Möglichkeit, Texte zu speichern.
Wozu gibt es in Java den Datentyp/die Klasse String?
Strings werden verwendet, um Zeichenketten zu speichern (Texte).
Wie werden Strings intern dargestellt?
Ein String verwendet intern ein Zeichenarray.
Was sind Strings?
Stringkonstanten (Text-Literale) sind Zeichenfolgen zwischen doppelten Hochkommas.
Formulierung einer String-Deklaration
String word = “Hallo!”
Wie können Strings über die Zeilengrenzen gehen?
Strings dürfen nicht über die Zeilengrenzen gehen, allerdings ist das mit “”” möglich.
Formulierung einer Umwandlung eines Zeichenarrays in einen String
char data[] = {‘a’, ‘b’, ‘c’};
String str = new String(data);
Was speichern Stringvariablen?
Stringvariablen speichern Referenzen auf Strings (wie Arrays).
Können Strings verändert werden?
Nein, Strings sind konstant (immutable) und können nicht (direkt) verändert werden. Man kann Strings manipulieren, aber dadurch wird ein neuer String erzeugt.
Wie kann man bei Strings auf einzelne Elemente zugreifen?
Bei Strings ist es nicht möglich, direkt per Index auf einzelne Elemente zuzugreifen. Dazu müssen Methoden verwendet werden, z.B. name.charAt(int index).
Was machen diese Funktionen?
- concat(String str)
- endsWith(String str)
- indexOf(int ch)
- indexOf(String str)
- String hw = “hello “.concat(“world”): ein String wird einem anderen String hinzugefügt (wie mit +)
- if (hw.endsWith(“world”))…: true, wenn hw mit “world” endet
- hw.indexOf(‘w’): gibt Position des Zeichens aus (als Zahl); wenn nicht enthalten, dann -1
- hw.indexOf(“hel”): wie oben, aber für Strings
Was sind weitere nützliche Funktionen von Strings?
- hw.length();
- hw.substring(4);
- hw.substring(3, 7);
- hw.toUpperCase();
- hw.toCharArray();
- hw.split(“ “); ->in Array speichern
- hw.lastIndexOf(‘l’);
- hw.startsWith(“Hello”);
Wie kann man Strings vergleichen?
Strings können nicht mit == verglichen werden, sondern müssen mit str1.equals(str2) verglichen werden.
Wie kann man Strings effizient manipulieren?
Muss ein String öfters geändert werden, kann man die Klasse StringBuilder verwenden.
StringBuilder sb = new StringBuilder();
sb.append(“Hi”).append(“ “);
System.out.println(sb.toString());
Mit welchen Hilfsfunktionen können Strings in andere Datentypen konvertiert werden?
- int: Integer.parseInt(String str)
- float: Float.parseFloat(String str)
- double: Double.parseDouble(String str)
- boolean: Boolean.parseBoolean(String str)
Wie kann man andere Datentypen in einen String umwandeln?
String.valueOf(myInt)
Was sind reguläre Ausdrücke?
Reguläre Ausdrücke (RegEx) sind Strings, die Suchmuster über syntaktische Regeln beschreiben. Sie beinhalten Spezialzeichen für Alternativen, Wiederholungen oder Verkettungen und werden häufig zum Filtern von Texten verwendet.