Entity: StringLib 453 154 null * Operation: before StringLib String str String delim String query static true i = str->indexOf(delim) & ( ( i > 0 => result = str.subrange(1,i - 1) ) & ( i <= 0 => result = str ) ) Operation: after StringLib String str String delim String query static true i = str->indexOf(delim) & ( ( i > 0 => result = str.subrange(i + delim.size,str.size) ) & ( i <= 0 => result = str ) ) Operation: equalsIgnoreCase StringLib boolean s1 String s2 String query static true str1 = s1.toLowerCase & str2 = s2.toLowerCase & ( ( str1 = str2 => result = true ) & ( str1 /= str2 => result = false ) ) Operation: lastIndexOf StringLib int s String d String query static true r = s.reverse & i = r->indexOf(d) & result = s.size - i + 1 Operation: split StringLib Sequence(String) str String delim String query static true result = str Operation: replace StringLib String str String delim String s2 String query static delim.size > 0 result = str Operation: trim StringLib String str String query static true result = str Activity: StringLib split res : Sequence := Sequence{} ; i : int ; i := str->indexOf(delim) ; while i > 0 do ( res := res->append(str.subrange(1,i - 1)) ; str := str.subrange(i + delim.size,str.size) ; i := str->indexOf(delim) ) ; res := res->append(str) ; return res Activity: StringLib replace res : String ; res := "" ; i : int ; i := str->indexOf(delim) ; while i > 0 do ( res := res + str.subrange(1,i - 1) + s2 ; str := str.subrange(i + delim.size,str.size) ; i := str->indexOf(delim) ) ; res := res + str ; return res Activity: StringLib trim res : String ; res := "" ; i : int ; i := 1 ; while ( i < str.size & str[i] = " " ) do i := i + 1 ; j : int ; j := str.size ; while j >= 1 & str[j] = " " do j := j - 1 ; if j < i then res := "" else res := str.subrange(i,j) ; return res