字符串运算符
本节列出了将字符串作为参数的运算符。此外,还将处理从其他值生成字符串的运算符。
基本字符串操作
字符串串联:<字符串1>+<字符串2>
描述:这个+
运算符还可以用于将一个字符串附加到另一个字符串。这样一个操作的结果又是一个字符串。如果在加法操作中至少有一个参数是字符串,则另一个参数将自动转换为其值的字符串表示。
代码 | 结果
|
“辛迪”+“脚本” | “CindyScript”
|
“四加三等于”+(4+3) | “四加三等于七”
|
""+(4+3) | "7"
|
另请参见:这个+
运算符还用于添加常用数值。为此,请参阅算术运算符.
转换为字符串:文本(<expr>)
描述:操作员文本(<expr>)
计算表达式<出口>
并将结果转换为字符串表示。
字符串长度:长度(<string>)
描述:此运算符返回字符串中的字符数。
例子: 长度(“CindyScript”)
计算为整数11
.
另请参阅: 列表与线性代数
提取子字符串:子字符串(<string>,<int1>,<int 2>)
描述:此运算符返回的子字符串<字符串>
开始于由整数索引的字符之后<int1>
并以索引的字符结尾<整数2>
.
例子: 子字符串(“abcdefg”,3,6)
计算为字符串“定义”
.
搜索事件:索引(<string1>,<string2>)
描述:此运算符搜索第一次出现的<字符串2>
在里面<字符串1>
。返回第一次出现的索引。如果<字符串2>
不是的子字符串<字符串1>
,然后是值0
返回。
代码 | 结果
|
indexof(“CindyScript”,“i”) | 2
|
索引(“CindyScript”,“y”) | 5
|
索引(“CindyScript”,“z”) | 0
|
搜索事件:索引(<string1>、<string2>、<int>)
描述:此运算符搜索第一次出现的<字符串2>
在里面<字符串1>
在索引之后我
。将返回第一个此类事件的索引。如果<字符串2>
不会出现在<字符串1>
索引之后我
.,然后是值0
返回。
代码 | 结果
|
索引(“CindyScript”,“i”,1) | 2
|
索引(“CindyScript”,“i”,3) | 9
|
索引(“CindyScript”,“i”,10) | 0
|
高级字符串操作
剖析字符串:标记化(<string>,<expr>)
描述:此运算符对于解析输入非常有用。它创建的子字符串列表<字符串>
.第二个参数<经验>
必须是字符串或字符串列表。如果<出口>
是一个字符串,则运算符在<字符串>
。这些事件用作将<string>分解为片段列表的标记。
如果<expr>是字符串列表,则生成表示<字符串>
通过列表中的标记递归执行。
标记化
通常将数字的字符串表示转换为数字对象。这可能会导致信息丢失。要禁用此行为,请使用自动转换
修改器并将其设置为假
.
代码 | 结果
|
标记化(“一:二..三:四”,“:”) | [“一”、“二..三”、“四”]
|
标记化(“一:二..三:四”,“.”) | [“一:二”、“”、“三:四”]
|
标记化(“一:二..三:四”,“..”) | [“一:二”,“三:四”]
|
标记化(“一:二..三:四”,[“.”,“:”]) | [[“一”、“二”]、[“”]、[[“三”、“四”]]
|
标记化(“一:二..三:四”,[“..”,“:”]) | [[“一”、“二”]、[“三”、“四”]]
|
标记化(“7777777777”,“:”) | [77777777777777776]
|
标记化(“77777777777777777”,“:”,自动转换->false) | [77777777777777777]
|
串中替换:替换(<string1>、<string2>和<string3>)
描述:此运算符将<string1>中出现的所有(!)次<string2>替换为<string3>。
这个操作符对于创建在所谓的Lindenmeyer系统中使用的文本替换系统非常有用。
代码 | 结果
|
替换(“一:二..三:四”,“o”,“XXX”) | “XXXne:twXXX..three:fXXXur”
|
替换(“F”、“F”、“F+F”) | “F+F”
|
替换(“F+F”、“F”、”F+F“) | “F+F+F+F+F”
|
串中替换:替换(<string>,<list>)
描述:这个操作符与前一个操作符非常相似。<列表>
包含替换对列表,所有此类替换同时应用于<字符串>
.
代码 | 结果
|
替换(“XYX”,[[“X”,“one”],[“Y”,“two”]]) | “一二一”
|
分析字符串:解析(<string>)
描述:此运算符将字符串解析为表达式并计算此表达式。此运算符在处理来自构造中文本字段的用户输入时特别有用。
代码片段
text=“sin(x)+cos(x)”;f(x):=解析(文本);
定义函数f(x)
将来正弦(x)+余弦(x)
.
猜测数字的良好表示:猜测(<数字>)
描述:这一功能强大的操作符将在本节中详细描述微积分。它采用浮点表示形式的数值表达式,并尝试将其转换为生成该浮点数字的高精度数学表达式。然后将此表达式表示为字符串。
代码 | 结果
|
猜测(8.125) | "65/8"
|
猜测(0.774596669241483) | “平方码(3/5)”
|
另请参见: 微积分
将数字格式化为指定精度:格式(<number>,<int>)
描述:此运算符将数字作为第一个参数,并将指定小数点后位数的整数作为第一个参数。将生成一个字符串,该字符串与指定精度以下的数字相对应。最多可输入14位数字。如果format参数是一个对象列表,那么format语句将递归地应用于每个对象。
代码 | 结果
|
格式(sqrt(2),4) | "1.4142"
|
格式(pi,14) | "3.14159265358979"
|
格式([sin(30°),cos(30°)],3) | [0.5,0.866]
|
警告:生成format语句只应用于创建格式化的输出元素。格式化后的值将始终是*字符串*,因此通常不是算术运算的有效对象。以下示例说明了这一点:
代码 | 结果
|
格式(sqrt(2),4)+格式(sqrt(2),4) | "1.41421.4142"
|
字符串比较和排序
与实数一样,字符串也接受总排序。因此,可以使用运算符对它们进行比较>
,<
,>=
,<=
,==
、和!=
。请参阅布尔算子为了使用这些关系。
字符串的顺序是字典顺序。因此例如,
“a”<“abd”<“ab”<“b”<“blue”<“burth”<“xxx”
列表排序:排序(<list>)
列表排序:排序(<list>,<expr>)
列表排序:排序(<list>、<var>、<expr>)
描述:的各种版本分类
-运算符可用于对包含字符串值的列表进行排序。排序顺序通常被认为是单词的字典顺序。或者,可以指定用户定义的排序函数,例如字符串的长度。
代码 | 结果
|
排序([“一”、“二”、“三”、“四”、“五”]) | [“五”、“四”、“一”、“三”、“二”]
|
排序([“一”,“二”,“三”,“四”,“五”],长度(#)) | [“一”、“二”、“四”、“五”、“三”]
|
另请参见: 列表和线性代数
访问和替换字符
索引运算符:<字符串>_<int>
描述:中缀运算符_
访问列表字段的,也可以用于访问字符串中特定位置的字符。可以使用此运算符返回和设置字符。
代码 | 结果
|
“CindyScript”_5 | “y”
|
“CindyScript”_12 | 未定义 |
评估代码片段后
a=“CindyScript”;a_5=“erella”;
变量一
包含字符串“灰姑娘脚本”
.