Lua Lesen Anfang einer Zeichenfolge
(Halten Sie im Verstand, dass dies meine erste Frage)
Hallo, ich mache ein Abenteuer-Spiel, und ich bin versucht, um die Benutzer-Eingabe einen string und wenn der string beginnt mit der Aktion, dann wird es Lesen, der rest der Zeile in eine Funktion.
act=io.read();
if act=="blah" then doSomething();
elseif act=="action"+random string then readRestOfStringAndDoSomethinWwithIt();
else io.write("Unknown action\n");
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf diese Seite http://lua-users.org/wiki/StringRecipes:
Dann verwenden
Gibt es wahrscheinlich eine Reihe von verschiedenen Möglichkeiten, um dieses Problem zu lösen, hier ist eine.
Möchten Sie vielleicht schreiben Sie Ihre eigene Aussage-parser, wo Sie Sie verarbeiten den string in bekannten Token, etc.
Verwenden
string.find
mit der^
die Anker das Muster am Anfang der Zeichenfolge:Können Sie selbst machen es eine Methode für alle Streicher:
Nur beachten, dass
"some string literal":startswith(str)
wird nicht funktionieren: ein string-literal nichtstring
Tabelle Funktionen als "Methoden". Verwenden Sietostring
oder Funktion eher als Methode:Problem mit der letzten Zeile ist die syntax, ist ein bisschen verwirrend: ist es die erste Zeichenfolge, die das Muster oder die zweite? Auch die Muster-parameter ('hello' im Beispiel) kann eine beliebige gültige Muster; wenn es beginnt bereits mit
^
die Folge ist eine falsch-negative, also robust sind diestartswith
Methode sollte nur hinzufügen, die^
Anker, wenn es nicht bereits vorhanden ist.