Elm - 字符串
Unicode 字符序列称为字符串。在 Elm 中,字符串用 "" 双引号 括起来。字符串是一块文本,如下所示。
> "TutorialsPoint" "TutorialsPoint" : String > location = "Hyderabad" --variable "Hyderabad" : String > location "Hyderabad" : String >
字符串函数
下面给出了一些可用于查询或操作字符串值的常用函数。使用 REPL 尝试以下示例。
序号 | 方法 | 描述 |
---|---|---|
1 | isEmpty : String -> Bool | 检查字符串是否为空 |
2 | reverse : String -> String | 反转输入字符串 |
3 | length : String -> Int | 返回整数长度 |
4 | append :String -> String -> String | 追加两个字符串并返回一个新字符串 |
5 | append :String -> Sconcat : List String -> String | 追加字符串列表并返回一个新字符串 |
6 | split : String -> String -> List String | 使用给定的分隔符分割输入字符串,返回一个字符串列表 |
7 | slice : Int -> Int -> String -> String | 给定开始、结束索引和输入字符串,返回子字符串 |
8 | contains : String -> String -> Bool | 如果第二个字符串包含第一个字符串,则返回 true |
9 | toInt : String -> Result.Result String Int | 将字符串解析为整数 |
10 | toInt : String -> Result.Result String Int | 将字符串解析为整数 |
11 | toFloat : String -> Result.Result String Float | 将字符串解析为浮点数 |
12 | fromChar : Char -> String | 根据给定的字符创建字符串。 |
13 | toList : String -> List Char | 将字符串转换为字符列表 |
14 | fromList : List Char -> String | 将字符列表转换为字符串 |
15 | toUpper : String -> String | 将输入字符串转换为大写 |
16 | trim : String -> String | 去除字符串两侧的空格。 |
17 | filter : (Char -> Bool) -> String -> String | 从输入字符串中过滤字符集 |
18 | map : (Char -> Char) -> String -> String | 转换输入字符串中的每个字符 |
isEmpty
此函数可用于确定字符串是否为空。如果提供的字符串为空,则此函数返回 True。
语法
String.isEmpty String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.isEmpty <function> : String -> Bool
函数的签名显示 Bool 作为返回类型,输入类型为 String:
示例
> String.isEmpty "" True : Bool > String.isEmpty "Tutorialspoint" False : Bool > location = "Hyderabad" "Hyderabad" : String > String.isEmpty location False : Bool
reverse
此函数反转字符串。
语法
String.reverse String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.reverse <function> : String -> String
函数的签名显示 String 作为返回类型,输入类型为 String:
示例
> String.reverse "TutorialsPoint" "tnioPslairotuT" : String
length
此函数返回字符串的长度。
语法
String.length String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.length <function-> : String -> Int
函数的签名显示 Int 作为返回类型,输入类型为 String。
示例
> String.length "Mohtashim" 9 : Int
append
此函数通过追加两个字符串返回一个新字符串。
语法
String.append String_value1 String_value2
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.append <function-> : String -> String -> String
签名的显示有两个 String 输入参数和一个 String 输出参数
示例
> String.append "Tutorials" "Point" TutorialsPoint : String
concat
此函数通过将多个字符串连接成一个返回一个新字符串。
语法
String.concat [String1,String2,String3]
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.concat <function> : List String -> String
签名的显示一个 String 输入参数列表和 String 返回类型
示例
> String.concat ["Hello","Tutorials","Point"] HelloTutorialsPoint : String
split
此函数使用给定的分隔符分割字符串。
语法
String.split string_seperator String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.split <function> : String -> String -> List String
签名的显示两个输入 String 参数,输出为字符串类型列表。
示例
> String.split "," "Hello,Tutorials,Point" ["Hello","Tutorials","Point"] : List String
slice
此函数给定开始和结束索引返回子字符串。负索引从列表末尾开始取。索引值从零开始。
语法
String.slice start_index end_index String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.slice <function> : Int -> Int -> String -> String
签名的显示三个输入参数和一个返回类型。
示例
> String.slice 0 13 "TutorialsPoint" "TutorialsPoin" : String
contains
如果第二个字符串包含第一个字符串,则此函数返回 True。
语法
String.contains string1 string2
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.contains <function> : String -> String -> Bool
签名的显示 bool 返回类型和两个输入参数
示例
> String.contains "Point" "TutorialsPoint" True : Bool
toInt
此函数将字符串转换为 int。
语法
String.toInt string_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.toInt <function> : String -> Result.Result String Int
由于 toInt 可能返回错误,因此返回类型为 Result,即 String 或 Int。
示例
> String.toInt "20" Ok 20 : Result.Result String Int > String.toInt "abc" Err "could not convert string 'abc' to an Int" : Result.Result String Int
toFloat
此函数将字符串转换为 float。
语法
String.toFloat string_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.toFloat <function> : String -> Result.Result String Float
由于 toFloat 可能返回错误,因此返回类型为 Result,即 String 或 Float。
示例
> String.toFloat "20.50" Ok 20.5 : Result.Result String Float > String.toFloat "abc" Err "could not convert string 'abc' to a Float" : Result.Result String Float
fromChar
此函数根据给定的字符创建字符串。
语法
String.fromChar character_value
要在 elm REPL 中检查函数的签名类型,请执行以下操作:
> String.fromChar <function> : Char -> String
签名显示 String 作为返回类型,输入为 Char 类型
示例
> String.fromChar 'c' "c" : String
toList
此函数将字符串转换为字符列表。
语法
String.toList string_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.toList <function> : String -> List Char
签名显示函数返回字符列表,并接收字符串作为输入。
示例
> String.toList "tutorialspoint" ['t','u','t','o','r','i','a','l','s','p','o','i','n','t'] : List Char
fromList
此函数将字符列表转换为字符串。
语法
String.fromList list_of_characters
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.fromList <function> : List Char -> String
签名显示函数返回字符列表,并接收字符串作为输入。
示例
> String.fromList ['h','e','l','l','o'] "hello" : String
toUpper
此函数将字符串转换为全部大写。
语法
String.toUpper String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.toUpper <function> : String -> String
示例
> String.toUpper "hello" "HELLO" : String
toLower
此函数将字符串转换为全部小写。
语法
String.toLower String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.toLower <function> : String -> String
示例
> String.toLower "AbCd" "abcd" : String
trim
此函数去除字符串两侧的空格。
语法
String.trim String_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.trim <function> : String -> String
示例
> String.trim "tutorialspoint " "tutorialspoint" : String
filter
此函数从输入字符串中过滤一组字符。仅保留通过测试的字符。
语法
String.filter test_function string_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.filter <function> : (Char -> Bool) -> String -> String
签名显示 filter 接收两个输入参数并返回一个字符串。第一个参数是一个函数,它接收 Char 作为输入并返回 Bool。
示例
在示例中,我们将 Char.isUpper 作为参数传递给 filter 方法;它返回所有大写字符,如下所示。
> import Char > String.filter Char.isUpper "abcDEF" "DEF" : String
map
此函数接收一个字符串并转换字符串中的每个字符。
语法
String.filter mapping_function string_value
要在 elm REPL 中检查函数的签名,请键入以下内容:
> String.map <function> : (Char -> Char) -> String -> String
示例
以下示例将字符 o 替换为 @:
> String.map (\c -> if c == 'o' then '@' else c) "TutorialsPoint" "Tut@rialsP@int" : String