StringSplit("字符串", "分隔符"[, 標(biāo)志 = 0])
參 數(shù)
字符串 | 目標(biāo)字符串. |
分隔符 | 一或多個(gè)作為分隔符的字符 (區(qū)分大小寫). |
標(biāo)志 | [可選] 指定如何拆分字符串, 如果需要可以加入復(fù)合標(biāo)志值: $STR_CHRSPLIT (0) = 分隔符字符串中的每個(gè)字符都將作為分隔標(biāo)志 (默認(rèn)值) $STR_ENTIRESPLIT (1) = 以整個(gè)分隔符字符串作為分隔標(biāo)志 $STR_NOCOUNT (2) = 禁用返回計(jì)數(shù)的第一個(gè)元素 - 方便使用基于 0 開始的數(shù)組. 此時(shí)數(shù)組大小由UBound()函數(shù)檢測.常量定義文件: StringConstants.au3 |
返 回 值
返回一個(gè)數(shù)組, 第一個(gè)元素 ($aArray[0]) 保存拆分后的子串?dāng)?shù)量,
其余元素 ($aArray[1],$aArray[2] 等等) 則保存拆分后的每個(gè)子字符串.
如果標(biāo)志 = 2, 則返回第一元素不表示子串?dāng)?shù)量.
若未發(fā)現(xiàn)分隔符, 則 @error 設(shè)置為 1:
如果 "標(biāo)志" 參數(shù)不是 $STR_NOCOUNT, 則 $aArray[0] 設(shè)置為 1, 并且完整字符串返回到 $aArray[1].
如果 "標(biāo)志" 參數(shù)為 $STR_NOCOUNT, 則完整字符串返回到 $aArray[0].
備 注
若給定的分隔符是個(gè)空字符串 "", 則每個(gè)字符將作為數(shù)組元素返回.
如果分隔符字符串包含多個(gè)字符, 則函數(shù)操作取決于標(biāo)志設(shè)置.
如果標(biāo)志設(shè)置為 $STR_CHRSPLIT, 則使用分隔符中的單個(gè)字符拆分每個(gè)實(shí)例.
如果標(biāo)志設(shè)置為 $STR_ENTIRESPLIT, 則使用整個(gè)分隔符拆分. 參閱下面的第二個(gè)示例
需要注意的是宏 @CRLF 實(shí)際上是一個(gè) 2 字符的字符串, 可能出現(xiàn)使用 @CR 和 @LF 拆分, 這將生成額外的空白的行, 這時(shí)應(yīng)將標(biāo)志參數(shù)設(shè)置為 $STR_ENTIRESPLIT.
本函數(shù)有時(shí)候可以代替 StringInStr() 函數(shù), 因?yàn)楸竞瘮?shù)可以創(chuàng)建數(shù)組.
#include <MsgBoxConstants.au3> #include <StringConstants.au3> Example() Func Example() Local $sText = "This\nline\ncontains\nC-style breaks." ; 定義一個(gè)變量為文本字符串. ; 傳遞變量到 StringSplit(), 使用分隔符 '\n' 拆分變量 ; 請注意, 標(biāo)記參數(shù)被設(shè)置為 $STR_ENTIRESPLIT (1), 因?yàn)樗赡苁褂?\ 或 n 拆分字符串. MsgBox($MB_SYSTEMMODAL, "", StringSplit($sText, '\n', $STR_ENTIRESPLIT)[2]) ; 使用數(shù)組索引直接訪問數(shù)組. #cs 返回內(nèi)部臨時(shí)字符串?dāng)?shù)組,可能包含下列值之一: $aArray[1] = "This" $aArray[2] = "line" ... $aArray[4] = "C-style breaks." #ce EndFunc ;==>Example
評(píng)論