Wie in jeder anderen Programmiersprache, bietet auch Javascript die Möglichkeit Buchstaben zu bearbeiten.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
i | c | h | b | i | n | d | a |
Wier testen einen Satz. Es gibt nur Kleinbuchstaben.Wörter sind mit einem Leerzeichen getrennt.
Im einfachsten Fall möchte ich wissen, wieviele Buchstaben ein String enthält. Dies geschieht mit der Methode length des String-Objektes.
Ein weiterer wichtiger Punkt ist zu erfahren, an welcher Stelle sich das Zeichen "b" etc. befindet. Dazu dient die Methode indexOf(). Als Parameter wird das gewünschte Zeichen angegeben. Aber Vorsicht: die Zählung beginnt mit 0 an der ersten Stelle des Strings! Kommt der Buchstabe nicht vor, wird -1 als Wert angegeben.
Um den String verändern zu können, verwendet man die Methode
substring(). Diese verlangt 2 Parameter.
Der 1. Parameter gibt an, ab
wo ein String extrahiert werden soll,
der 2. Parameter gibt an,
welche Stelle des Strings nicht mehr extrahiert werden soll.
var eingabe = ("ich bin da"); var zeichen = prompt("Wähle Zeichen"); var zeichen_nr = eingabe.indexOf(zeichen); with(document){ write(eingabe + "<br>"); write(eingabe.length+ "<br>"); write(zeichen_nr + "<br>"); write(eingabe.substring(0,zeichen_nr)); }
Das Beispiel erklärender gescriptet: Anwendung 1
Nun wird der Endwert in substring() direkt über die Methode indexOf() des String-Objektes eingabe ausgewählt. Somit kann man einen String vom Anfang = 0 bis zum gewünschtem Buchstaben extrahieren. Da der gesuchte Buchstabe jedoch nicht mehr dabei ist, muss noch +1 dazugezählt werden. Damit ändert sich die Anweisung auf:
eingabe.substring(0,eingabe.indexOf(zeichen)+1);
Möchte ich alle Vorkommen eines Zeichens ermitteln, so benötige ich zuerst einmal eine Schleife, die am Ende des Strings = string.length() aufhört. Um ein einzelnes Zeichen zu finden, verwendet man die Methode substring() mit den Parametern i,i+1
Die Schleife sorgt dafür, daß die Zeichen untereinander ausgegeben werden.
eingabe = window.prompt();
for(i=0;i<eingabe.length;i++){
document.write( eingabe.substring(i,i+1)+"<br>");
}
Um einzelne Wörter aus dem Satz "Ich bin da" mit dem Leerzeichen zu
ermitteln, wird folgendermaßen vorgegangen:
Zuerst sucht das Programm bis zum ersten Leerzeichen und gibt diese
Zeichenfolge als Wort aus; damit bleibt "bin da" übrig. Diese
übriggebliebene Wortfolge wird in der Variablen rest gespeichert, und
könnte für ein nochmaliges Extrahieren verwendet werden.
var eingabe = "Ich bin da"; var ausgabe = eingabe.substring(0, eingabe.indexOf(" ") + 1); var rest = eingabe.substring(eingabe.indexOf(" ") + 1, eingabe.length); document.write("Der ganze Satz war: " + eingabe + "<br>Die Ausgabe lautet: " + ausgabe + "<br>Die restlichen Wörter sind: " + rest);
Nicht sauber aber vereinfacht mit nochmaligen Aufruf dieser Funktion mit dem restlichem Wort. Zusätzlich knn eine beliebige Wortfolge mit einem beliebigen Trennzeichen eingegeben werden. Dazu muss das Programm umgeschrieben werden zu:
Jetzt erfolgt solange ein Funktionsaufruf bis das der String leer ist. Aber Vorsicht!! Wenn kein Trennzeichen mehr im rest vorhanden ist, befindet man sich auf einer Endlosschleife! Daher habe ich vor der Übergabe des Wortes an die Funktion das Trennzeichen am Schluss des Wortes angefügt. Damit ist der letzte Buchstabe immer das Trennzeichen und die Schleife kann sich beenden.
var eingabe = window.prompt("Text mit definiertem Trennzeichen(ZB: Leerzeichen, Trennpunkt, Buchstabe..) eingeben:"); var trennZeichen = window.prompt("TRENNZEICHEN:"); eingabe = eingabe + trennZeichen; function trenneText(text, trennZeichen) { var e = text; var ausgabe = e.substring(0, e.indexOf(trennZeichen) + 1); var rest = e.substring(e.indexOf(trennZeichen) + 1, e.length); document.write(ausgabe + "<br>"); if (e.length > 0) { alert(rest); trenneText(rest, trennZeichen); } } trenneText(eingabe, trennZeichen); document.write("<hr>Programm beendet");
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
i | c | h | b | i | n | d | a |