Maxscript基本数据类型(一):String
目录
String 类定义字符串的特征。字符串可以是任意长度。
1.字面常量
"<characters>"
String类型为一个或多个包含在一对双引号“ ”里的字符,
可以包含除双引号之外的任何字符。例如“3ds max”,“2022”,“model.pos”,“2+2”等。
通过使用“\”(反斜杠)转义字符序列,可以在字符串文本中包含双引号以及一些有用的控制字符,输入方式如下:
转义序列 | 意义 |
---|---|
\" | 双引号字符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\* | 星号字符 |
\? | 问号字符符 |
\\ | 单斜杠"\"字符 |
\% | 百分比字符 |
\x{d} | 十六进制字符 |
举例
输入:
print "foo should be quoted like this: \"foo\" and a new line: \n"
//该行代码包括两个\" (双引号字符)和一个\n(换行字符)
输出:
"foo should be quoted like this: "foo" and a new line:
"
2.构造函数
<value> as string
//将任何值转换为其字符串
3.属性
<string>.count
//返回字符串的字符个数,只读整数
4.操作符
<string> + <string>
(1)返回连接两个字符串的新字符串
<string> == <string>
<string> != <string>
<string> > <string>
<string> < <string>
<string> >= <string>
<string> <= <string>
//逻辑表达式
注:比较语句区分大小写。
(2)返回序号的单个字符
<string>[<index_number>]
注:索引从1开始,即[<index_number>]最小值为1,只读整数。
(3)给序号字符赋新值
<string>[<index_number>]= <single_character_string>
注:同样,索引从1开始。
(4)字符串类型转换
<string>as<class>
//class可以为 name、number等
例:
"111.2"as float
//返回 111.2
"word" as name
//返回 #word
5.方法
(1)给指定字符串创建副本
<string>copy <string>
新字符串是指定字符串内容的副本,并独立于指定字符串。
例:
newstring = copy oldstring
(2)将字符串编译为maxscript表达式并返回计算结果
execute <string>
例:
execute"2 + 2"
//返回 4
(3)在字符串中查找字符串
<string>findString<string> <search_string>
找到则返回第一个找到的字符序号,否则返回undefined。
例:
findString "Thanks you!" "you"
//返回 8
(4)将字符串分割为一个字符串数组
<string>filterString <string> <token_string> [splitEmptyTokens:<boolean>]
注:根据中给出的字符将输入拆分为子字符串,并返回每个子字符串作为数组的成员。它只是一个“拆分符”列表(当扫描字符串时,任何标记的出现都被视为子字符串的开始)。
例:
filterString "MAX Script, is-dead-funky" ", -"
//返回 #("MAX","Script","is","dead","funky")
(5)替换字符串
<string>replace <string> <from_integer> <length_integer> <new_string>
注:返回一个新字符串,从索引序号<from_integer> 开始的子字符串开始,长度为<length_integer> 的子字符串将替换为任意长度的新字符串。<from_integer> 与<length_integer> 之和必须小于原字符串总长度。
例:
s="1234567890"
s1=replace s 5 3 "inserted string"
//返回 "1234inserted string890"
(6)返回字符串的子字符串
<string>substring <string> <from_integer> <length_integer>
注:返回一个新字符串,从索引序号<from_integer> 开始的子字符串开始,长度为<length_integer> 的子字符串。<from_integer> 与<length_integer> 之和若大于字符串总长度,或是<length_integer> 为负数,则子字符串为指定位置到原来字符串的结尾。
s ="Balerofon"
ss = substring s 5 3
//返回 "rof"
ss = substring s 5 -1
//返回 "rofon"
ss = substring s 5 100
//返回 "rofon"
(7)判断是否包括某一子字符串
<bool>matchPattern <string> pattern:<pattern_string> [ignoreCase:<boolean>]
注:返回包含该字符串pattern:<pattern_string>,返回True,否则返回False。默认不区分大小写,若指定参数ignoreCase:False,则判断时区分大小写。
例:
s="text1"
matchPattern s pattern:"text"
//返回 returns true
matchPattern s pattern:"T"
//返回 returns true
matchPattern s pattern:"T"ignoreCase:false
//返回 false
matchPattern s pattern:"s"
//返回 false
(8)更改字符串大小写
toUpper <string>
// 返回一个新的字符串,将字符串转为大写
toLower <string>
//返回一个新的字符串,将字符串转为小写
例:
toUpper "so long and thanks for all the scripts"
//返回 "SO LONG AND THANKS FOR ALL THE SCRIPTS"
toLower "Life, The Universe And Everything"
//返回 "life, the universe and everything"
本文参考链接:https://help.autodesk.com/view/3DSMAX/2020/ENU/?guid=GUID-16F4BC9F-256F-4272-A346-3B4FF64427FD