The String: module provides string manipulation. All methods follow the ByRef convention — pre-declare a receiver variable and pass it as the last argument.
| Call | Result |
|---|---|
String:Len(s, out) / String:Length(s, out) |
Length of s |
String:Left(s, n, out) |
First n characters |
String:Right(s, n, out) |
Last n characters |
String:Mid(s, start, len, out) / String:Substring(s, start, len, out) |
Substring; start is 1-based |
String:Replace(s, from, to, out) |
Replace all occurrences of from with to |
String:Trim(s, out) |
Strip leading/trailing whitespace |
String:Upper(s, out) |
Uppercase |
String:Lower(s, out) |
Lowercase |
String:Reverse(s, out) |
Reverse characters |
String:Compare(a, b, out) |
-1 / 0 / 1 lexicographic |
String:Contains(s, sub, out) |
true if sub found in s |
String:Split(s, delim, out) |
Split into pre-declared List:String out |
String:Join(delim, s1, s2, ..., out) |
Join strings with delimiter |
String:Mid uses a 1-based start index (like BASIC), not 0-based.
Var:Number len;
String:Len("hello", len);
Konsol:Print(len); // 5
Var:String result;
String:Upper("hello", result);
Konsol:Print(result); // HELLO
String:Replace("hello world", "world", "KonsolScript", result);
Konsol:Print(result); // hello KonsolScript
String:Mid("hello", 2, 3, result);
Konsol:Print(result); // ell
List:String part;
String:Split("a,b,c", ",", part);
Var:Number sz;
List:Size(part, sz); // 3
Var:String p0;
List:Get(part, 0, p0);
Konsol:Print(p0); // a
// 11_string.ks — String module
Konsol:Print("=== String Module ===");
Var:String _ret = "";
Var:String s = "Hello, World!";
Konsol:Print("source: ${s}");
// Len
String:Len(s, _ret);
Konsol:Print("Len = ${_ret}");
// Left / Right
String:Left(s, 5, _ret);
Konsol:Print("Left(5) = ${_ret}");
String:Right(s, 6, _ret);
Konsol:Print("Right(6) = ${_ret}");
// Mid (1-based start)
String:Mid(s, 8, 5, _ret);
Konsol:Print("Mid(8,5) = ${_ret}");
// Replace
String:Replace(s, "World", "MINKS", _ret);
Konsol:Print("Replace = ${_ret}");
// Trim
String:Trim(" spaces ", _ret);
Konsol:Print("Trim =| ${_ret} |");
// Upper / Lower
String:Upper(s, _ret);
Konsol:Print("Upper = ${_ret}");
String:Lower(s, _ret);
Konsol:Print("Lower = ${_ret}");
// Reverse
String:Reverse("abcdef", _ret);
Konsol:Print("Reverse = ${_ret}");
// Compare
String:Compare("apple", "banana", _ret);
Konsol:Print("Compare(apple,banana) = ${_ret}");
String:Compare("banana", "apple", _ret);
Konsol:Print("Compare(banana,apple) = ${_ret}");
String:Compare("same", "same", _ret);
Konsol:Print("Compare(same,same) = ${_ret}");
// Contains
String:Contains(s, "World", _ret);
Konsol:Print("Contains(World) = ${_ret}");
String:Contains(s, "xyz", _ret);
Konsol:Print("Contains(xyz) = ${_ret}");
// Split
Konsol:Print("--- Split ---");
List:String parts;
String:Split("one,two,three,four", ",", parts);
Var:Number sz;
List:Size(parts, sz);
Var:String p0; Var:String p1; Var:String p2; Var:String p3;
List:Get(0, parts, p0); List:Get(1, parts, p1); List:Get(2, parts, p2); List:Get(3, parts, p3);
Konsol:Print("count = ${sz}");
Konsol:Print("p0 = ${p0}");
Konsol:Print("p1 = ${p1}");
Konsol:Print("p2 = ${p2}");
Konsol:Print("p3 = ${p3}");
// Split on spaces
List:String words;
String:Split("alpha beta gamma", " ", words);
Var:Number wsz;
List:Size(words, wsz);
Var:String w0; Var:String w1; Var:String w2;
List:Get(0, words, w0); List:Get(1, words, w1); List:Get(2, words, w2);
Konsol:Print("split spaces count = ${wsz}");
Konsol:Print("${w0} ${w1} ${w2}");
// Join
Konsol:Print("--- Join ---");
String:Join(", ", "red", "green", "blue", _ret);
Konsol:Print("Join(,) = ${_ret}");
String:Join(" + ", "a", "b", "c", "d", _ret);
Konsol:Print("Join(+) = ${_ret}");
// Compose: split then rejoin with different delimiter
List:String segs;
String:Split("a-b-c-d", "-", segs);
Var:String a; Var:String b; Var:String c; Var:String d;
List:Get(0, segs, a); List:Get(1, segs, b); List:Get(2, segs, c); List:Get(3, segs, d);
String:Join(".", a, b, c, d, _ret);
Konsol:Print("split+rejoin = ${_ret}");