27 String utilities
(require (planet untyped/unlib/string)) |
Useful string utilities. Compatible with PLT 4 languages.
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." |
Returns a copy of str with the first character upcased.
Examples: | ||
| ||
"Lowercase to capitalised" | ||
| ||
"Capitalised stays capitalised" | ||
| ||
"ALLCAPS stays ALLCAPSED" |
Like string-titlecase, in that the first character of each word is upcased, except that any upcase characters are left upcased.
Examples: | ||
| ||
"Lowercase To Titlecase" | ||
| ||
"InterCapsed Stays InterCapsed" | ||
| ||
"ALLCAPS Stays ALLCAPSED" |
A version of number->string that accepts and passes through #f.
A version of string->number that accepts and passes through #f.
A version of string->symbol that accepts and passes through #f.
A version of symbol->string that accepts and passes through #f.
| ||||||||||||||||||||||||||||
num : natural? | ||||||||||||||||||||||||||||
uppercase? : boolean? = #f | ||||||||||||||||||||||||||||
digits : natural? = 1 | ||||||||||||||||||||||||||||
prefix? : boolean? = #f |
Converts a natural number to a hexadecimal string. Arguments:
uppercase? - generate uppercase strings (the default is lowercase);
digits - pad the string to a certain number of hexadecimal digits (only pads the string - does not trim it);
prefix? - generate strings with a "0x" prefix (the default is unprefixed).
Converts a hexadecimal string like "ff" to a natural number. Case insensitive.
Set prefix? to #t to accept strings with a "0x" prefix.