目录
VEX字符串类型可用于处理文本text,引用文件名或节点名,处理二进制数据;
一,声明字符串类型
通用格式:string var_name
- 可使用双引号或单引号,也可指定使用python或C++格式;
- 转义字符会自动转义字符,raw会忽略转义字符;
//声明字符串变量
string mystring;
//返回字符串类型
string rgb_name()
{
...
};
//使用双引号或单引号,指定一个字符数组
string a_string = "hello world!";
string another_string = 'good-bye!';
string s = 'foo';
string t = "bar";
string py = r"Hello world\n"; // Python style, equivalent to "Hello world\\n"
string cpp = R"(Hello world\n)"; // C++ style, equivalent to "Hello world\\n"
二,访问与设置字符串值
使用格式:string [index]
- index是字符串内的字节偏移,而不是字符偏移;与getcomp函数同等作用;
- 字符串边界会在运行时检测,超过边界读取为空字符串,可能会生成警告或运行时错误;
- 类似python风格的索引,意味着负索引将从数组末尾开始;
- 可使用[]提取字符串的子串(即切片slice),格式string[strart: end: step];
- 不可使用[]赋值;
string a_string = "hello world!";
string thirdbyte = a_string[2:3];
三,循环字符串
可使用foreach,循环字符串内的每个字符;
string s="dfdfdfef";
foreach (string num; s)
{
printf("%s ", num);
}
四,字符串函数的使用
字符串函数可用于查询和管理字符串;
Functions | Using |
len | 返回字符串长度 |
match | 匹配字符串*、? |
append | 在字符串末尾追加字符串 |
ord | 将UTF8字符串转化为代码点 |
chr | 将代码点转化为UTF8字符串 |
//连接
string a ='ab';
string b ='cd';
string c = a + b; // 'abcd'
//匹配一个或多个字符
string text = 'abcd';
if(text ~= 'ab?c')
printf('matching one\n');
else if(text ~= 'abd*')
printf('matching many\n');
else if(text ~= 'ab[cD]d')
printf('matching lower/upper\n');
//return退出
if('abc' == 'abc'){
printf('abc\n');
return;
}
printf('end\n');
//结果为abc