Moduł Text to zestaw metod do wykonywania operacji na ciągach znaków - pobierania informacji o ciągach znaków, przekształcania ciągów znaków, dzielenia i łączenia ciągów znaków oraz wyrażeń regularnych.
Pobieranie informacji o ciągach znaków
Do pobierania informacji zawartych w ciągach znaków służą następujące funkcje
- Boolean contains(String string, String sequence) - zwraca true jeśli tekst string zawiera ciąg znaków sequence, w przeciwnym przypadku zwraca false
- Long indexOf(String string, String substring) - zwraca pozycję pierwszego wystąpienia ciągu znaków substring w tekście string; jeśli ciąg znaków substring nie występuje w tekście string funkcja zwraca wartość -1
- Long indexOf(String string, String substring, Long pos) - zwraca pozycję pierwszego (począwszy od pozycji pos) wystąpienia ciągu znaków substring w tekście string; jeśli ciąg znaków substring nie występuje w tekście string funkcja zwraca wartość -1
- Long lastIndexOf(String string, String substring) - zwraca pozycję ostatniego wystąpienia ciągu znaków substring w tekście string; jeśli ciąg znaków substring nie występuje w tekście string funkcja zwraca wartość -1
- Long lastIndexOf(String string, String substring, Long pos) - zwraca pozycję ostatniego (począwszy od pozycji pos) wystąpienia ciągu znaków substring w tekście string; jeśli ciąg znaków substring nie występuje w tekście string funkcja zwraca wartość -1
- Boolean startsWith(String testedString, String pattern) - zwraca true jeśli tekst testedString zaczyna się ciągiem znaków pattern, w przeciwnym przypadku zwraca false
- Long stringLen(String string) - zwraca długość tekstu string
- String subString(String string, Long from) - zwraca wycinek tekstu string od pozycji from (włącznie) do końca tekstu
- String subString(String string, Long from, Long to) - zwraca wycinek tekstu string od pozycji from (włącznie) do pozycji to (wyłącznie)
- String lead(String text, Long maxLength) - zwraca najdłuższy możliwy fragment z początku tekstu text o takiej długości, aby miał nie więcej niż maxLength znaków i nie zawierał niepełnego wyrazu na końc
- Long lineCount(String text) - zwraca ilość linii w tekście text
Przekształcanie ciągów znaków
Do przekształcania ciągów znaków służą następujące funkcje
- String replace(String string, String oldString, String newString) - zwraca tekst string, w którym wszystkie wystąpienia ciągu znaków oldString zastąpiono ciągiem znaków newString
- String replace(String string, String oldString, String newString, Long pos) - zwraca tekst string, w którym wszystkie (począwszy od pozycji pos) wystąpienia ciągu znaków oldString zastąpiono ciągiem znaków newString
- String replaceFirst(String string, String oldString, String newString) - zwraca tekst string, w którym pierwsze wystąpienie ciągu znaków oldString zastąpiono ciągiem znaków newString
- String replaceFirst(String string, String oldString, String newString, Long pos) - zwraca tekst string, w którym pierwsze (począwszy od pozycji pos) wystąpienie ciągu znaków oldString zastąpiono ciągiem znaków newString
- String replaceLoop(String string, String oldString, String newString) - zwraca tekst string, w którym wszystkie wystąpienia ciągu znaków oldString zastąpiono ciągiem znaków newString; po zastąpieniu funkcja wykonuje się ponownie w poszukiwaniu ciągu znaków oldString i iteruje dotąd, aż nie znajdzie żadnego wystąpienia oldString
- String toHTML(String text, String lineBreakReplacement) - funkcja zwraca tekst string, w którym przekształcono wszystkie wystąpienia znaków '<', '&', '>' na ich reprezentacje w HTML ('<', '&', '>'), znaki nowej linii zastępowane są ciągiem znaków lineBreakReplacement
- String toInitCap(String string) - funkcja zwraca tekst string, w którym pierwsze litery każdego słowa przekształcono na wielkie, a pozostałe na małe
- String toLower(String string) - funkcja zwraca tekst string, w którym wszystkie litery przekształcono na małe
- String toUpper(String string) - funkcja zwraca tekst string, w którym wszystkie litery przekształcono na wielkie
- String toUpperFirst(String string) - funkcja zwraca tekst string, w którym pierwszą literę przekształcono na wielką
- String trim(String string) - funkcja zwraca tekst string, w którym usunięto początkowe i końcowe białe znaki
- String wrap(String text, Long maxLength) - funkcja zwraca tekst string w którym dopisano znaki nowej linii tak, aby każda linia nie była dłuższa niż maxLength znaków
- String format(String pattern, Object[] arguments) - funkcja zwraca tekst pattern, w którym wystąpienia ciągów znaków postaci {0}, {1}, {2}, ... zastąpiono wartościami elementów tablicy arguments
Dzielenie i łączenie ciągów znaków
Do dzielenia ciągów znaków służą następujące funkcje
- Object[] split(String string, String delim) - dzieli tekst string na każdym wystąpieniu ciągu znaków delim i zwraca tablicę uzyskanych w ten sposób ciągów znaków
- Object[] toChars(String string) - dzieli tekst string na pojedyncze znaki i zwraca tablicę tych znaków
Do sklejania ciągów znaków służą następujące funkcje
- String join(Object[] fragments) - skleja elementy tablicy fragments w jeden ciąg znaków
- String join(Object[] fragments, String delim) - skleja elementy tablicy fragments w jeden ciąg znaków dodając między łączonymi elementami ciąg znaków delim
Jednym z zastosowań funkcji join() jest sklejanie warunków zapytań SQL budowanych dynamicznie. Wówczas tablica ciągów znaków do sklejenia zawiera warunki natomiast łączącym je ciągiem znaków jest and (poprzedzony i zakończony spacją).
Wyrażenia regularne
Do wykonywania operacji na ciągach znaków z użyciem wyrażeń regularnych zdefiniowano następujące funkcje
- Object[] findRegex(String string, String regex) - wyszukuje w tekście string ciągów znaków pasujących do wyrażenia regularnego regex i zwraca je w postaci tablicy
- Boolean matchRegex(String string, String regex) - zwraca true jeśli tekst string pasuje do wyrażenia regularnego regex, w przeciwnym przypadku zwraca false
- String replaceFirstRegex(String string, String regex, String replacement) - zwraca tekst string, w którym pierwsze wystąpienie ciągu znaków pasującego do wyrażenia regularnego regex zastąpiono ciągiem znaków replacement
- String replaceRegex(String string, String regex, String replacement) - zwraca tekst string, w którym każde wystąpienie ciągu znaków pasującego do wyrażenia regularnego regex zastąpiono ciągiem znaków replacement
- Object[] splitRegex(String string, String regex) - dzieli tekst string na każdym wystąpieniu ciągu znaków pasującego do wyrażenia regularnego regex i zwraca tablicę uzyskanych w ten sposób ciągów znaków
Pobieranie informacji o ciągach znaków
$=(@text, "unlikelihood")
$=(@from, $indexOf($@text, "l"))
$=(@to, $lastIndexOf($@text, "e"))
$if($<($@from, 0), { $=(from, 0) })
$if($<($@to, 0), { $=(to, $stringLen($@text)) })
$if($<($@from, $@to), {
$subString($@text, $@from, $+($@to, 1))
})
Przekształcanie ciągów znaków
$=(@in, " LikELIHooD ")
$=(@out, $replace($toLower($trim($@in)), "lihood", "ness"))
$@out
Dzielenie ciągów znaków
$=(@name, (String)null)
$for(@name, $split("Ann;John;Thomas;Margaret;Maria", ";"), {
$@name<br>
})
Łączenie ciągów znaków
$=(@names, $join(["Ann", "John", "Thomas", "Margaret", "Maria"], ";"))
$@names
Wyrażenia regularne - wyświetlenie źródła obiektu
$=(@objectSource, $sql.readLine("select tag from p_objects where id = ?", [$currentObject()], [String]))
$replaceRegex($replace($toHTML((String)$@objectSource[0]), " ", " "), "\r?\n", "<br>")