Text
Verkettung braucht Text auf beiden Seiten
+ verbindet zwei Texte. "Count: " + 5 ist nicht "Count: 5". Es ist der Rückfallwert für
gemischte Typen, Integer 0. Wandeln Sie Zahlen, Bools und Handles zuerst mit StringFormat in
Text um.
StringFormat(format, value0, value1)
- Ersetzt jedes
{0}durchvalue0und jedes{1}durchvalue1. Jeder der beiden Werte kann einen beliebigen Typ haben. Es gibt kein{2}und keine Formatangaben wie{0:N2}. - Die Funktion nimmt immer drei Argumente. Übergeben Sie
""für einen Wert, den Sie nicht verwenden:StringFormat("{0} items", n, ""). - Für mehr als zwei Werte verschachteln Sie Aufrufe oder verketten die Ergebnisse (siehe das Beispiel unten).
- Ein Real zeigt immer sechs Nachkommastellen (
0.500000). Runden Sie ihn für eine ganze Zahl zuerst auf einen Integer, oder skalieren Sie ihn (MathRound(r * 100)) für eine Festkommaausgabe. {0}wird vor{1}ersetzt; enthält der Text vonvalue0selbst{1}, wird das also ebenfalls ersetzt.
w = WindowGetActive();
s = StringFormat(StringFormat("{0} x {1} at ", WindowGetWidth(w), WindowGetHeight(w)) + "({0}, {1})",
WindowGetX(w), WindowGetY(w));
UtilityPrint(s); // z. B. 1280 x 720 at (100, 80)
Messen, Suchen, Zerschneiden
StringGetLengthzählt UTF-16-Codeeinheiten, nicht Zeichen. Ein Emoji außerhalb der Basic Multilingual Plane zählt als 2.StringGetIndexOf(text, search)liefert einen nullbasierten Index oder-1, wennsearchnicht gefunden wird. Die Groß-/Kleinschreibung wird beachtet, und es gibt kein „letzter Index von“ (mit einer Schleife durchsuchen).StringGetSubstring(text, start, length):startist nullbasiert. Einelength, die über das Ende hinausreicht, wird gekürzt, und einstartam oder hinter dem Ende ergibt"". Ein negativerstartoder eine negativelengthist ein Fehler und beendet die Aktion.- Es gibt keine Indexsyntax (
s[0]). Verwenden SieStringGetSubstring(s, i, 1)für ein einzelnes Zeichen. StringContains,StringStartsWith,StringEndsWithundStringReplacesind exakt und beachten die Groß-/Kleinschreibung. Für eine Prüfung ohne Beachtung der Groß-/Kleinschreibung wandeln Sie zuerst beide Seiten in Kleinbuchstaben um.StringToUpper/StringToLowerfolgen den Groß-/Kleinschreibungsregeln des Gebietsschemas des Benutzers, sodass das türkische i mit und ohne Punkt korrekt behandelt wird.StringTrimentfernt Leerraum an beiden Enden, einschließlich des\r, das von Windows-Zeilenenden\r\nübrig bleibt.StringReplaceundStringSplitbeenden die Aktion, wenn der Suchtext oder das Trennzeichen leer ist.
Aufteilen ist ein Cache, den Sie per Index lesen
Ein Wert kann keine Liste enthalten, daher legt StringSplit(text, delimiter) die Teile im Kontext
des laufenden Skripts ab und gibt zurück, wie viele es sind. Lesen Sie jeden Teil mit
StringGetSplitPartAt(i); ein Index außerhalb des Bereichs ergibt "". Das nächste StringSplit
im selben Skript ersetzt diesen Cache; kopieren Sie einen Teil also in eine Variable, bevor Sie
etwas anderes aufteilen. Jede integrierte Funktion …EnumerateAll, …FindAll… oder …GetAll…
funktioniert zusammen mit ihrem Leser …EnumeratedAt genauso.
Text vergleichen
== ist exakt und beachtet die Groß-/Kleinschreibung. </> vergleichen ordinal nach
UTF-16-Codeeinheit, was keine Wörterbuchreihenfolge ist: Jeder ASCII-Großbuchstabe wird vor jedem
Kleinbuchstaben einsortiert, und Buchstaben mit diakritischen Zeichen (etwa Umlaute) kommen nach
z. Präsentieren Sie diese Reihenfolge einem Benutzer nicht als alphabetisch.