On this page:
string+ false?
string-length/ c
number+ false->string+ false
string+ false->number+ false
string+ false->symbol+ false
symbol+ false->string+ false

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.

(string-delimit items    
  [#:prefix prefix    
  #:suffix suffix])  string?
  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.


  > (string-delimit '("1" "2" "3") ",")


  > (string-delimit '("1" "2" "3") "," #:prefix "[")


  > (string-delimit '("1" "2" "3") "," #:suffix "]")


  > (string-delimit '("1" "2" "3") "," #:prefix "[" #:suffix "]")


  > (string-delimit '("1" "2" "3") "," #:prefix #f #:suffix #f)


(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.


  > (string-ellipsify
     "The quick brown fox jumped over the lazy dog.")

  "The quick brown f..."

  > (string-ellipsify
     "The quick brown fox.")

  "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.