24 String utilities
| (require (planet untyped/unlib/string)) | 
Useful string utilities. Compatible with PLT 4 languages.
| (string+false? item) → boolean? | 
| item : any | 
Returns #t if item is a string and #f otherwise.
| (ensure-string item) → any | 
| item : any | 
Converts bytes arguments to strings: passes all other arguments straight through.
| (string-length/c max) → flat-contract? | 
| max : natural | 
| (string-length/c min max) → flat-contract? | 
| min : natural | 
| max : natural | 
Creates a contract that recognises strings with a length within the specified inclusive bounds.
  | ||||||||||||||||||||||||||||
| items : (listof string?) | ||||||||||||||||||||||||||||
| delimiter : string? | ||||||||||||||||||||||||||||
| prefix : (U string? #f) = #f | ||||||||||||||||||||||||||||
| suffix : (U string? #f) = #f | 
Similar to string-join from SRFI 13, except that the optional #:prefix and #:suffix arguments can be provided to add a prefix or suffix string.
Examples:  | 
| > (string-delimit '("1" "2" "3") ",") | 
"1,2,3"  | 
| > (string-delimit '("1" "2" "3") "," #:prefix "[") | 
"[1,2,3"  | 
| > (string-delimit '("1" "2" "3") "," #:suffix "]") | 
"1,2,3]"  | 
| > (string-delimit '("1" "2" "3") "," #:prefix "[" #:suffix "]") | 
"[1,2,3]"  | 
| > (string-delimit '("1" "2" "3") "," #:prefix #f #:suffix #f) | 
"1,2,3"  | 
| (string-ellipsify str [max-length ellipsis]) → string? | 
| str : string? | 
| max-length : natural? = 20 | 
| ellipsis : string? = "..." | 
Returns a shortened version of str that is never longer than max-length. If necessary, str is truncated and ellipsis is appended.
Examples:  | ||
  | ||
"The quick brown f..."  | ||
  | ||
"The quick brown fox."  | 
| (number+false->string+false num) → (U string? #f) | 
| num : (U number? #f) | 
A version of number->string that accepts and passes through #f.
| (string+false->number+false str) → (U number? #f) | 
| str : (U string? #f) | 
A version of string->number that accepts and passes through #f.
| (string+false->symbol+false str) → (U symbol? #f) | 
| str : (U string? #f) | 
A version of string->symbol that accepts and passes through #f.
| (symbol+false->string+false sym) → (U string? #f) | 
| sym : (U symbol? #f) | 
A version of symbol->string that accepts and passes through #f.