📜  Elm-字符串

📅  最后修改于: 2020-11-04 08:59:36             🧑  作者: Mango


 

Unicode字符序列称为字符串。在Elm中,字符串用“”双引号引起来。字符串是一段文本,如下所示。

> "TutorialsPoint"
"TutorialsPoint" : String
> location = "Hyderabad" --variable
"Hyderabad" : String
> location
"Hyderabad" : String
>

字符串函数

下面给出了一些可用于查询或操作字符串值的常用函数。使用REPL尝试下面给出的示例。

Sr. No Method Description
1 isEmpty : String -> Bool checks string is empty
2 reverse : String -> String reverses a input string
3 length : String -> Int returns an integer length
4 append :String -> String -> String appends two string and returns a new string
5 append :String -> Sconcat : List String -> String appends a list of strings and returns a new string
6 split : String -> String -> List String splits an input string using a given separator, returns a string list
7 slice : Int -> Int -> String -> String returns a substring given a start , end index and input string
8 contains : String -> String -> Bool returns true if second string contains the first one
9 toInt : String -> Result.Result String Int parses a String to Integer
10 toInt : String -> Result.Result String Int parses a String to Integer
11 toFloat : String -> Result.Result String Float parses a String to float
12 fromChar : Char -> String creates a string from a given character.
13 toList : String -> List Char converts string to list of characters
14 fromList : List Char -> String converts a list of characters into a String
15 toUpper : String -> String converts input string to upper case
16 trim : String -> String gets rid of whitespace on both sides of a string.
17 filter : (Char -> Bool) -> String -> String filters set of characters from input string
18 map : (Char -> Char) -> String -> String transforms every character in an input string

是空的

此函数可用于确定字符串是否为空。如果提供的字符串为空,则此函数返回True。

句法

String.isEmpty String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.isEmpty
 : String -> Bool

该函数的签名显示Bool为返回类型,输入类型为String-

插图

> String.isEmpty ""
True : Bool
> String.isEmpty "Tutorialspoint"
False : Bool
> location = "Hyderabad"
"Hyderabad" : String
> String.isEmpty location
False : Bool

逆转

此函数反转一个字符串。

句法

String.reverse String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.reverse
 : String -> String

该函数的签名显示String为返回类型,输入类型为String-

插图

> String.reverse "TutorialsPoint"
"tnioPslairotuT" : String

长度

此函数返回字符串的长度。

句法

String.length String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.length
 : String -> Int

该函数的签名将Int显示为返回类型,将输入类型显示为String。

插图

> String.length "Mohtashim"
9 : Int

附加

该函数通过追加两个字符串返回新字符串。

句法

String.append String_value1 String_value2

要检查函数的签名,请在elm REPL中键入以下内容:

> String.append
 : String -> String -> String

显示的签名显示两个String输入参数和一个String输出参数

插图

> String.append "Tutorials" "Point"
TutorialsPoint : String

康卡特

该函数通过将多个字符串连接成一个字符串来返回一个新字符串。

句法

String.concat [String1,String2,String3]

要检查函数的签名,请在elm REPL中键入以下内容:

> String.concat
 : List String -> String

的签名显示了String输入参数和String返回类型的列表

插图

> String.concat ["Hello","Tutorials","Point"]
HelloTutorialsPoint : String

分裂

此函数使用给定的分隔符分割字符串。

句法

String.split string_seperator String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.split
 : String -> String -> List String

的签名显示了两个输入String参数,并以字符串类型列表形式输出。

插图

> String.split "," "Hello,Tutorials,Point"
["Hello","Tutorials","Point"] : List String

该函数返回给定开始索引和结束索引的子字符串。负索引从列表的末尾开始。索引的值从零开始。

句法

String.slice start_index end_index String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.slice
 : Int -> Int -> String -> String

的签名显示三个输入参数和一个返回类型。

插图

> String.slice 0 13 "TutorialsPoint"
"TutorialsPoin" : String

包含

如果第二个字符串包含第一个字符串,则此函数返回True。

句法

String.contains string1 string2

要检查函数的签名,请在elm REPL中键入以下内容:

> String.contains
 : String -> String -> Bool

显示布尔返回类型和两个输入参数的签名

插图

> String.contains "Point" "TutorialsPoint"
True : Bool

toInt

此函数将字符串转换为int。

句法

String.toInt string_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.toInt
 : 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

漂浮

此函数将字符串转换为浮点数。

句法

String.toFloat string_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.toFloat
 : 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

发件人

此函数根据给定字符创建字符串。

句法

String.fromChar character_value

要检查函数类型的签名,请参见elm REPL-

> String.fromChar
 : Char -> String

签名显示String为返回类型,输入为Char类型

插图

> String.fromChar 'c'
"c" : String

到清单

该函数将字符串转换为字符的列表。

句法

String.toList string_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.toList
 : String -> List Char

签名show函数返回一个字符列表并输入一个字符串。

插图

> 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
 : List Char -> String

签名show函数返回一个字符列表并输入一个字符串。

插图

> String.fromList ['h','e','l','l','o']
"hello" : String

上层

此函数将字符串转换为全部大写。

句法

String.toUpper String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.toUpper
 : String -> String

插图

> String.toUpper "hello"
"HELLO" : String

降低

此函数将字符串转换为所有小写字母。

句法

String.toLower String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.toLower
 : String -> String

插图

> String.toLower "AbCd"
"abcd" : String

修剪

该函数消除了字符串两侧的空白。

句法

String.trim String_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.trim
 : String -> String

插图

> String.trim "tutorialspoint "
"tutorialspoint" : String

过滤

此函数从输入String中过滤出一组字符。仅保留通过测试的字符。

句法

String.filter test_function string_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.filter
 : (Char -> Bool) -> String -> String

签名显示过滤器接受两个输入参数并返回一个String。第一个参数是一个函数,该函数具有输入Char并返回Bool。

插图

在示例中,我们将Char.isUpper作为参数传递给filter方法;它返回所有大写字符,如下所示。

> import Char
> String.filter Char.isUpper "abcDEF"
"DEF" : String

地图

此函数采用String并转换字符串的每个字符。

句法

String.filter mapping_function string_value

要检查函数的签名,请在elm REPL中键入以下内容:

> String.map
 : (Char -> Char) -> String -> String

插图

以下示例将字符o替换为@-

> String.map (\c -> if c == 'o' then '@' else c) "TutorialsPoint"
"Tut@rialsP@int" : String