字符串操作
字符串类型表示字符序列。字符串是不可变的,一旦创建就无法修改。
类型名称:string
字符串语法
字符串字面量由双引号 ("
) 括起来的字符序列表示。除了未转义的双引号外,任何字符都可以出现在字符串字面量中。字符串字面量支持多种 转义序列 和 使用 \x
作为前缀的十六进制编码。
"abc"
"string with double \" quote"
"string with backslash \\"
"日本語"
"\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"
将数据类型转换为字符串
使用 string()
函数 将其他 基本类型 转换为字符串
- boolean
- bytes
- duration
- float
- int
- uint
- time
string(v: 42)
// Returns "42"
将正则表达式转换为字符串
要将正则表达式转换为字符串
- 导入
regexp
包。 - 使用
regexp.getString()
并提供要转换为字符串的正则表达式。
import "regexp"
regexp.getString(r: /[a-zA-Z]/)
// Returns [a-zA-Z] (string)
将数据类型转换为十六进制字符串
要将 基本类型 转换为十六进制字符串
- 导入
contrib/bonitoo-io/hex
包。 - 使用
hex.string()
将其他值转换为十六进制字符串。
import "contrib/bonitoo-io/hex"
hex.string(v: 123456)
// Returns 1e240
将列转换为字符串
Flux 允许您迭代表流中的行并将列转换为字符串。
要将 _value
列转换为字符串,请使用 toString()
函数。
toString()
仅对 _value
列进行操作。
data
|> toString()
给定以下输入数据
_time | _value (int) |
---|---|
2021-01-01T00:00:00Z | 1 |
2021-01-01T02:00:00Z | 2 |
2021-01-01T03:00:00Z | 3 |
2021-01-01T04:00:00Z | 4 |
上面的示例返回
_time | _value (string) |
---|---|
2021-01-01T00:00:00Z | 1 |
2021-01-01T02:00:00Z | 2 |
2021-01-01T03:00:00Z | 3 |
2021-01-01T04:00:00Z | 4 |
要将任何列转换为字符串:
data
|> map(fn: (r) => ({ r with level: string(v: r.level) }))
给定以下输入数据
_time | level (int) |
---|---|
2021-01-01T00:00:00Z | 1 |
2021-01-01T02:00:00Z | 2 |
2021-01-01T03:00:00Z | 3 |
2021-01-01T04:00:00Z | 4 |
上面的示例返回
_time | level (string) |
---|---|
2021-01-01T00:00:00Z | 1 |
2021-01-01T02:00:00Z | 2 |
2021-01-01T03:00:00Z | 3 |
2021-01-01T04:00:00Z | 4 |
对字符串进行操作
使用 Flux strings 包中的函数执行操作,包括
字符串插值
要在另一个 Flux 字符串中插入字符串,请将嵌入的表达式用美元符号和花括号 ${}
括起来。Flux 将占位符替换为嵌入式表达式的结果,并返回字符串字面量。
name = "John"
"My name is ${name}."
// My name is John.
d = 1m
"the answer is ${d}"
// the answer is 1m
t0 = 2016-06-13T17:43:50Z
"the answer is ${t0}"
// the answer is 2016-06-13T17:43:50.000000000Z
p = {name: "John", age: 42}
"My name is ${p.name} and I'm ${p.age} years old."
// My name is John and I'm 42 years old.
字符串插值表达式必须满足 Stringable 约束。
连接字符串
要连接 Flux 字符串,请在字符串值或解析为字符串的表达式之间使用 +
运算符。Flux 解析表达式并返回单个连接的字符串。
连接的表达式必须解析为字符串。
name = "John"
"My name is " + name + "."
// My name is John.
d = 1m
"the answer is " + string(v: d)
// the answer is 1m
t0 = 2016-06-13T17:43:50Z
"the answer is " + string(v: t0)
// the answer is 2016-06-13T17:43:50.000000000Z
p = {name: "John", age: 42}
"My name is " + p.name + " and I'm " + string(v: p.age) + " years old."
// My name is John and I'm 42 years old.
此页面是否对您有帮助?
感谢您的反馈!