Menu
Coddy logo textTech

Zeichen iterieren (strsplit

Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 65 von 78.

Was ist, wenn Sie jedes Zeichen in einer Zeichenkette einzeln verarbeiten müssen? Im Gegensatz zu Vektoren können Sie in R nicht direkt eine Schleife über die Zeichen einer Zeichenkette ausführen. Die Funktion strsplit() löst dies, indem sie eine Zeichenkette in einen Vektor aus Zeichen aufteilt.

Die strsplit()-Funktion nimmt zwei Argumente entgegen: die zu teilende Zeichenkette und das Trennzeichen. Um in einzelne Zeichen aufzuteilen, verwenden Sie eine leere Zeichenkette "" als Trennzeichen:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

Ausgabe:

[1] "h" "e" "l" "l" "o"

Beachten Sie das [[1]] am Ende. Dies liegt daran, dass strsplit() eine Liste zurückgibt, und wir das erste Element extrahieren müssen, um unseren Zeichenvektor zu erhalten. Sobald Sie die Zeichen als Vektor haben, können Sie diese mit den Techniken iterieren, die Sie bereits gelernt haben:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

Ausgabe:

[1] "R"

Diese Technik ist essenziell für Aufgaben wie das Zählen bestimmter Zeichen, das Umkehren von Zeichenketten oder das Validieren von Eingaben Zeichen für Zeichen.

challenge icon

Aufgabe

Einfach

Du erhältst eine einzelne Eingabezeile, die ein Wort enthält (z. B. programming).

Verwende strsplit(), um die Zeichenkette in einzelne Zeichen aufzuteilen:

  1. Teile das Eingabewort in einen Zeichenvektor auf
  2. Durchlaufe jedes Zeichen im Vektor
  3. Zähle, wie oft der Buchstabe "a" im Wort vorkommt (unter Beachtung der Groß- und Kleinschreibung)
  4. Gib jedes Zeichen mit print() in einer eigenen Zeile aus
  5. Gib nach der Schleife die Anzahl mit cat() im folgenden Format aus: Count of 'a': X, gefolgt von einem Zeilenumbruch

Wenn die Eingabe beispielsweise lautet:

banana

sollte die Ausgabe folgendermaßen aussehen:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

Erklärung: Das Wort „banana“ wird in die Zeichen c("b", "a", "n", "a", "n", "a") aufgeteilt. Jedes Zeichen wird ausgegeben, und der Buchstabe „a“ kommt 3-mal vor.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# Zähler für den Buchstaben 'a' initialisieren
count_a <- 0

# TODO: Schreibe deinen Code unten
# 1. Verwende strsplit(), um das Wort in einzelne Zeichen aufzuteilen
# 2. Durchlaufe jedes Zeichen in einer Schleife
# 3. Gib jedes Zeichen mit print() aus
# 4. Zähle, wie oft 'a' vorkommt

# Ausgabe der Anzahl von 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-R-Compiler