|
大家好,这是对“《Let's AutoIt》自由天空AU3零起步教程 AutoIt”教程中第六章 第三节 字符串相关函数 进行详细的解释(有错误请谅解) ,顺序是按照“《Let's AutoIt》自由天空AU3零起步教程 AutoIt”的顺序进行一一解释!
1、StringLeft
语法:StringLeft ( "字符串", 数量 )
作用:返回字符串中从左开始指定数量的字符. 注:数量:要得到的字符数。
例如:$Var = StringLeft("大家好,见到你们很高兴-lchl0588 ", 11)
MsgBox(0, "最左边11个字符为:", $Var)
2、StringRight
语法:StringRight ( "字符串", 数量 )
作用:返回字符串中从右开始指定数量的字符.
例如:$Var = StringRight ("大家好,我们在学习:AU3 ", 10 )
MsgBox(0, "最右边10个字符为:", $Var)
呵呵,我们遇到一个有意思的现象:Left 翻译下看是什么意思:是左边,而Right呢,是右边!其含义还是保留点好-------丰富下想像力!!!
3、StringMid
语法:StringMid ( "字符串", 起始位置 [, 数量] )
作用:取某个字符串的部分字符.也就是:为了获得“字符串”某一部分的内容,规定了“从哪里开始(就是起始位置)”,到“哪里结束(就是数量)”。
例子:Dim $a,$Var
$a="大家好,我们在学习: AU3"
$Var = StringMid ($a, 5,10)
MsgBox(0, "获取某部分字符:", $Var)
呵呵,再叨唠几句:给大家出个作业吧:对比下1 2与3 有哪不同-----心里明白就行了
4、StringLen
语法:StringLen ( "字符串" )
作用:返回指定字符串的字符总数. 也就是获取“字符串”总个数------包括符号哦
例子:Dim $a,$Var
$a="大家好,我们在学习:AU3" ;我查了下一共13个,运行看结果吧!
$Var = StringLen ($a)
MsgBox(0, "字符串长度为:", $Var)
5、StringLower
语法:StringLower ( "字符串" )
作用:转换字符串为小写字母. 注:把“字符串”中所有字母全部转换为小写字母!
例子:Dim $a,$Var
$a="HELLO EVERYone,我们在学习:AU3"
$Var = StringLower($a)
MsgBox(0, "字符串转换为小写为:", $Var)
6、StringUpper
语法:StringUpper ( "字符串" )
作用:转换字符串为大写字母. 注:把“字符串”中所有字母全部转换为大写字母!
例子:Dim $a,$Var
$a="Hello ereryone,我们在学习:au3"
$Var = StringUpper($a)
MsgBox(0, "字符串转换为小写为:", $Var)
StringLower 与 StringUpper 意思正好相反
7、StringReplace
语法:StringReplace ( "字符串", "搜索字符串/起始位置", "替换字符串" [, 数量 [, 区分大小写]] )
作用:替换字符串中的指定子串. 注:在所有的“字符串(内容)”中,查找/指定位置 的内容后,并替换,可以规定只替换其中几个并规定是否 区分大小写(0 不区分,1 区分,2 使用基本/快速的比较方法)。
(注:偶理解:感觉跟修改作业差不多,哪里错了,改哪里!)
例子:Dim $a,$Var
$a="大 家 好,我 们 在学习:AU3"
$Var = StringReplace($a," ", "-")
$numreplacements = @extended
MsgBox(0, "新字符串为:", $Var)
MsgBox(0, "共替换的数量为:", $numreplacements)
注:$a变量的值是“大(空格)家(空格)好,我(空格)们(空格)在学习:AU3
$Var = StringReplace($a," ", "-") 看到$a," ",双引号里是空格,不是什么没有,这一点要注意哦。如果我想把$a的内容全改呢,那用学过的知识,一定会办到的!!(启示下:把空格换为上述“三”项的函数)
8、StringSplit
语法:StringSplit ( "字符串", "分隔符" [, 标志 ] )
作用:在整个“字符串”中,以“分隔符”为标准(可理解成分界线),把“字符串”拆分成若干个“子串”。
标志参数:0(默认值)时把分隔符中的每个字符作为分隔标准!
为1时,把分隔符中的整体作为分隔标准!
为2,关闭第一个元素中的返回数量 - 方便使用 UBound() 得到此基于0开始的数组
这里注意下:标志参数只针对“分隔符”规定。不是.“StringSplit”哦!
如果想详细的了解这个函数,请参照AU3帮助!!!
实例 为了大家更好的明白:请参照:[url= http://www.autoitx.com/forum.php ... &extra=page%3D2]点此 进入,找三楼afan版版的代码[/url]
说下,以“@CRLF & @CRLF ”为分隔符,把a.txt 分成若干个小段,然后以1~A~Z的顺序 进行排列等等!
如果请更进一步的了解,希望把这篇文章的内容都看一遍!!!直到看明白为止!!!
9、StringStripCR
语法:StringStripCR ( "字符串" )
作用:删除字符串中的所有回车( Chr(13) ). 注:Chr(13)=回车 [属于(ASCII码)].
例子:Dim $a=StringStripCR("大家好,我们在学习" & Chr(13) &":AU3")
MsgBox(0,"StringStripCR 例子",$a)
10、StringAddCR
语法:StringAddCR ( "字符串" )
作用:在指定字符串的所有换行符( Chr(10) )前附加一个回车( Chr(13) )
例子:Dim $a=StringAddCR("大家好"& Chr(10) &"我们"& Chr(10) &"在"& Chr(10) &"学习:" & Chr(10) &"AU3")
MsgBox(0,"StringStripCR 例子",$a)
11、StringStripWS
语法:StringStripWS ( "字符串", 标志 )
作用:删除掉所有 字符串中的"空白符". 注:空白符=空格。
标志:1、去掉左边空格 2、去掉右边空格 3、去掉双(或多)空格 8、去掉所有空格
例子:Dim $a=StringStripWS("大家好"&" "&"我们"&" "&"在"&" "&"学习:"&" "&"AU3",8)
MsgBox(0,"StringStripWS 例子",$a)
12、StringTrimLeft
语法:StringTrimLeft ( "字符串", 数量 )
作用:删除字符串中从左开始指定数量的字符.
假如你明白 StringLeft ,这个也不用说了! “数量”呢-----想删除的个数!
13、StringTrimRight
语法:StringTrimRight ( "字符串", 数量 )
作用:删除字符串中从右开始指定数量的字符.14、StringCompare
语法:StringCompare ( "字符串1", "字符串2" ,[区分大小写] )
作用:按选项比较两个字符串. 注:有两个例子----字符串1和字符串2 进行比较,条件是区分大小写。
有三种情况:0、不区分(默认) 1、区分 2、不区分大小写, 使用基本/快速的比较方法
例子:$Var= StringCompare("HAO朋友", "hao朋友",0)
MsgBox(0, "StringCompare Result (例子0):", $Var)
$Var= StringCompare("HAO朋友", "hao朋友",1)
MsgBox(0, "StringCompare Result (例子1):", $Var)
$Var= StringCompare("HAO朋友嘛", "hao朋友",2)
MsgBox(0, "StringCompare Result (例子2):", $Var)
运行上述代码后,结果是 例子0=0 例子1=-1 例子2=1
我们可以从帮助上看到解释:
0 表示字符串1与字符串2 相等 ;<0 表示字符串1 小于 字符串2;>0 表示 字符串1 包含 字符串2
这里特别要注意 0与 2 多次测试结果基本相同,知道是不是BUG….. 同时也看到“《Let's AutoIt》自空AU3零起步教程 AutoIt”的解释也不同 真不明白“可以规定只替换其中几个(以偶的理解:是不是调用此函数时,实际情况是这样的)”是什么得出的!
15、StringInStr
语法:StringInStr ( "字符串", "子字符串" [, 区分大小写 [, 出现次序 [, 开始 [, 数量]]]] )
作用:检查某个字符串是否含有给定的子串. 注:这篇文章内,查找出这段相同的内容!!
例子:Dim $Var=StringInStr("abcdabcdabcd","d",0,2,6,8)
MsgBox(0, "StringInStr:", $Var) ;例子1
$a = StringInStr("abcdabcdabcd", "d")
MsgBox(0, "StringInStr:", $a) ;例子2
举了两个例子,例子1是全面的参数,搜索范围空间比较窄。 从“abcdabcdabcd”里搜索“d”,按照大小写(大小写的区分,请参照14项内容)2表示第二次出现时,开始从第6个字符串查找(这里规定了查找的范围),8或12 都可以 (注:这里的数量是要比较的数量)
运行结果是12 为什么是12呢!答案就是出现次序上!!
例子2 结果是4 不明白之处请参照AU3 帮助,有详细的参数说明!!!
16、StringIsAlNum
语法:StringIsAlNum ( "字符串" )
作用:检查某个字符串是否仅含有字母或数字(文字数字式字符).注:是返回1 ,否返回0,说明字符串含有非文字数字字符.
例子:$a = "abcd123"
MsgBox(0, "StringIsAlNum:", StringIsAlNum($a)) ;是
$a = "abcd123@"
MsgBox(0, "StringIsAlNum:", StringIsAlNum($a)) ;否
注:从这里开始,针对后面StringIs… 例子不再一一列举!!! 例子基本跟16 例子差不多!!!
17、StringIsAlpha
语法:StringIsAlpha ( "字符串" )
作用:检查某个字符串是否仅含有字母(文字字符). 注:是返回1 ,否返回0,说明字符串含有非字母字符.
18、StringIsASCII
语法:StringIsASCII ( "字符串" )
作用:检查某个字符串是否仅含有ASCII码值介于 0x00 到 0x7f (0-127)之间的字符. 注:注:是返回1 ,否返回0,说明给定的字符串含有扩展的 ASCII 字符. 不懂 “ASCII”是什么,请百度自个搜!!!
19、StringIsDigit
语法:StringIsDigit ( "字符串" )
作用:检查某个字符串是否仅含有数字(0-9)字符. 注:是返回1 ,否返回0,说明给定的字符串含有非数字字符.
20、StringIsFloat
语法:StringIsFloat ( "字符串" )
作用:检查某个字符串是否为浮点数. 注:是返回1 ,否返回0,说明给定的字符串并非浮点数格式.
这里要注意的是:一个字符串(被认为)是浮点数仅当其含有至少一个十进制数和只有一个小数点;其它字符可以是在开头的加号或减号.StringIsFloat 不接受逗号作为小数点,即使是电脑的区域设置中已设置使用该符号.若给定的参数并非字符串则它先被转成字符串,请查看例子.(还是帮助里全,不编辑了 这里看“表达式”) StringIsFloat(“1.5”);返回1
StringIsFloat(“7.”);返回1,因为包含小数
StringIsFloat(“-. 0”);返回1
StringIsFloat(“3 / 4”);返回0,因为'3'斜线'4'是不是浮动
StringIsFloat(“2”);返回0,因为'2'是一个整数,而不是浮动
StringIsFloat(1.5);返回1,因为1.5转换为字符串包含。
StringIsFloat(1.0);返回0,因为1.0转换成字符串不包含。
21、StringIsInt
语法:StringIsInt ( "字符串" )
作用:检查某个字符串是否整型数. 注:是返回1 ,否返回0,说明给定的字符串不是一个整数.
这里要注意的是:StringIsInt 对非字符串的整数表达式也返回 1.但是,如果是十六进制的表达式如 "4ff0" 等则 StringIsInt 的返回值为0.字符串中唯一允许含有的标点符号是在开头(首字符)的加号或减号.(这里看结果)StringIsInt(“42”);返回1
StringIsInt(“-00”);返回1
StringIsInt(“1.0”);返回0,由于小数点
StringIsInt(1.0);返回1,由于一些字符串的转换
StringIsInt(“1 +2”);返回0,由于加号
22、StringIsLower
语法:StringIsLower ( "字符串" )
作用:检查某个字符串是否仅含有小写字母. 注:是返回1 ,否返回0,说明给定的字符串含有非小写字母. 只要字符串中含有数字,标点符号,空白符则 StringIsLower 将返回0.
23、StringIsSpace
语法:StringIsSpace ( "字符串" )
作用:检查某个字符串是否仅含有"空白符". 注:是返回1 ,否返回0,说明给定的字符串包含了非空白符. 所谓空白符是指从 Chr(9) 到 Chr(13) 的所有字符,包括水平制表符,换行符,垂直制表符,进纸符以及回车符. 空白符还包括空字符串(Chr(0))和标准空格符(Chr(32)).
24、StringIsXDigit
语法:StringIsXDigit ( "字符串" )
作用:检查某个字符串是否仅含有十六进制字符(0-9, A-F). 注:是返回1 ,否返回0,说明给定的字符串中含有非十六进制字符. 有效的十六进制字符包括 0123456789abcdefABCDEF,若给定的字符串中含有空白符或 "0x" 前缀都将导致StringIsXDigit 返回0.
StringIsXDigit("00FC") ; 返回1
StringIsXDigit("2570") ; 返回1
StringIsXDigit("a cafe") ; 返回0,a cafe
StringIsXDigit(1 + 2.0) ; 返回1,由于一些字符串的转换
看完之后,也会发现在一个规律!!!!!同时也是如何学习AU3帮助的学习方法!!!! |
评分
-
查看全部评分
|