From HaskellWiki
1 Strings
Since strings are lists of characters, you can use any available list function.
1.1 Combining strings
| Problem
| Solution
| Examples
|
| combining two strings
| (++)
| "foo" ++ "bar" --> "foobar"
|
| combining many strings
| concat
| concat ["foo", "bar", "baz"] --> "foobarbaz"
|
1.2 Accessing substrings
| Problem
| Solution
| Examples
|
| accessing the first character
| head
| head "foo bar baz" --> 'f'
|
| accessing the last character
| last
| last "foo bar baz" --> 'z'
|
| accessing the character at a given index
| (!!)
| "foo bar baz" !! 4 --> 'b'
|
accessing the first n characters
| take
| take 3 "foo bar baz" --> "foo"
|
accessing the last n characters
| TODO
| TODO
|
accessing the n characters starting from index m
| drop, take
| take 4 $ drop 2 "foo bar baz" --> "o ba"
|
1.3 Splitting strings
| Problem
| Solution
| Examples
|
| splitting a string into a list of words
| words
| words "foo bar\t baz\n" --> ["foo","bar","baz"]
|
| splitting a string into two parts
| splitAt
| splitAt 3 "foo bar baz" --> ("foo"," bar baz")
|
1.4 Multiline strings
1.5 Converting between characters and values
| Problem
| Solution
| Examples
|
| converting a character to a numeric value
| ord
| import Char
ord 'A' --> 65
|
| converting a numeric value to a character
| chr
| import Char
chr 99 --> 'c'
|
1.6 Reversing a string by words or characters
| Problem
| Solution
| Examples
|
| reversing a string by characters
| reverse
| reverse "foo bar baz" --> "zab rab oof"
|
| reversing a string by words
| words, reverse, unwords
| unwords $ reverse $ words "foo bar baz" --> "baz bar foo"
|
| reversing a string by characters by words
| words, reverse, map, unwords
| unwords $ map reverse $ words "foo bar baz" --> "oof rab zab"
|
1.7 Converting case
| Problem
| Solution
| Examples
|
| converting a character to upper-case
| toUpper
| import Char
toUpper 'a' --> "A"
|
| converting a string to upper-case
| toUpper, map
| import Char
map toUpper "Foo Bar" --> "FOO BAR"
|
| converting a character to lower-case
| toLower
| import Char
toLower 'A' --> "a"
|
| converting a string to lower-case
| toLower, map
| import Char
map toLower "Foo Bar" --> "foo bar"
|
1.8 Interpolation
TODO
1.9 Performance
For high performance requirements (where you would typically consider
C), consider using Data.ByteString.
1.10 Unicode
TODO