String Operationen


Für Strings, also Zeichenketten, gibt es so allerhand Funktionen, die standardmäßig im Lua-Core dabei sind und daher mit jedem Lua-Wrapper funktionieren (sollten). Ich liste hier jetzt einfach mal einige auf:

	string.byte
	string.char
	string.find
	string.format
	string.len
	string.lower
	string.rep
	string.sub
	string.upper
	string.gfind
	string.gsub
	string.dump
	
	string.byte
liest den numerischen Wert eines Zeichens aus. Beispiel:
	text = string.byte("hello",2)
	screen:print(0,0,text,color)
Als text wird dann "101" ausgegeben, da der 2. Buchstabe in "hello" ein e ist, und e ist der 101. Buchstabe in der ASCII-Tabelle...

string.char wandelt ASCII-Werte in einen string um. Beispiel:
	text = string.char(65,66,67)
	screen:print(0,0,text,color)
Als text wird "ABC" ausgegeben.

string.find sucht innerhalb eines strings nach angegebenen Werten. Beispiel:
	text = string.find("Hi wie gehts", "geht", 7, true)
	screen:print(0,0,text,color)


string.format formatiert einen string z.B. in ASCII Code. Beispiel:
	text = string.format( "%s %q", "Hallo", "du da!")
	screen:print(0,0,text,color)

%c Wandelt eine Zahl in ein ASCII - Zeichen um
%E, %e Gibt eine Zahl mit Exponentialwert aus E+00 oder e+00
%f Gibt eine Zahl mit maximal 6 Stellen hinter dem Komma aus
%g, %G Gibt eine Zahl mit insgesamt 6 Stellen aus. Wenn nötig mit e+00 oder E+00
%o Wandelt eine Zahl in octal um
%X, %x Wandelt eine Zahl in hexadezimal um.
%q Umgibt einen String mit Anführungszeichen
%s gibt den String unverändert aus

string.len ermittelt die Länge des Strings. Beispiel:
	text = string.len("hallo")
	screen:print(0,0,text,color)
Ausgegeben wird hier 5, da "hallo" aus fünf Zeichen besteht.

string.lower wandelt einen String in Kleinbuchstaben um. Beispiel:
	text = string.lower("HALLO")
	screen:print(0,0,text,color)
Ausgegeben wird hier "hallo".

string.rep vervielfältigt den String. Beispiel:
	text = string.rep("hi ", 3)
	screen:print(0,0,text,color)
Ausgegeben wird dann "hi hi hi".

string.sub schneidet einen bestimmten Teil eines strings aus. Beispiel:
	text = string.sub("hiho", 3,4)
	screen:print(0,0,text,color)
Hier erscheint dann "hi" auf dem Bildschirm, h und o wurden entfernt...

string.upper wandelt einen string in Großbuchstaben um. Beispiel:
	text = string.lower("hallo")
	screen:print(0,0,text,color)
Ausgegeben wird hier "HALLO".

string.gfind dursucht einen String auf das Vorkommen eines Schlüsselwortes und merkt sich bei einem Fund die Fundposition, beim nächsten Suchdurchlauf wird dann ab der 1. Fundstelle weitergesucht. Der Rückgabewert ist eine Funktion, die einen String zurückgibt. Beispiel:
	textsuche = string.gfind("hallo", "l")
	screen:print(0,0,textsuche, color)
	screen:print(0,10,textsuche, color)
Ausgegeben wird hier ll

string.gsub sucht in einem String nach einem Schlüsselwort und ersetzt es. Wenn der 4. Parameter mitangegeben ist wird das Schlüsselwort nur so oft ersetzt, wie es der Parameter angibt. Beispiel:
	text = string.gsub("Hallo", "a", "e")
	text = string.gsub("Hallo", "l", "s", 2)
Rückgabe wäre dann Hello oder Hasso.

string.dump wandelt eine Luafunktion in ihre Binärform um. Beispiel:
	function test(a,b)
	return a*b
	end
	
	string.dump(test)