Menu
Coddy logo textTech

Iterieren über Zeichen (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

Sie erhalten eine einzelne Eingabezeile, die ein Wort enthält (z. B. programming).

Verwenden Sie strsplit(), um die Zeichenfolge in einzelne Zeichen aufzuteilen:

  1. Teilen Sie das Eingabewort in einen Vektor aus Zeichen auf
  2. Iterieren Sie in einer Schleife durch jedes Zeichen im Vektor
  3. Zählen Sie, wie oft der Buchstabe "a" im Wort vorkommt (Groß-/Kleinschreibung beachten)
  4. Geben Sie jedes Zeichen in einer eigenen Zeile mit print() aus
  5. Geben Sie nach der Schleife die Anzahl mit cat() im folgenden Format aus: Count of 'a': X gefolgt von einem Zeilenumbruch

Wenn die Eingabe zum Beispiel wie folgt lautet:

banana

Sollte die Ausgabe wie folgt 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" erscheint 3 Mal.

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