基 础 函 数 参 考


StringSplit

拆分字符串为若干子串.

StringSplit ( "字符串", "分隔符" [, 标志 ] )

参 数

字符串 目标字符串.
分隔符 一或多个作为分隔符的字符 (区分大小写).
标志 [可选参数] 指定如何拆分字符串, 如果需要可以加入复合标志值:
  标志 = 0 (默认), 分隔符字符串中的每个字符都将作为分隔标志
  标志 = 1, 以整个分隔符字符串作为分隔标志
  标志 = 2, 禁用返回表示元素数量的第一个元素 - 方便使用基于 0 开始的数组.
(此时的数组大小由 UBound() 函数检测).

返 回 值

返回一个数组, 第一个元素 ($aArray[0]) 保存拆分后的子串数量,
其余元素 ($aArray[1],$aArray[2] 等等) 则保存拆分后的每个子字符串.
如果标志 = 2, 则不返回表示子串数量的第一个数组元素.
若未发现分隔符, 则 @error 将被设为 1, 并返回子串数量元素 ($Aarray[0]) = 1, 及整个字符串返回到元素 ($aArray[1]).

备 注

若给定的分隔符是个空字符串 "", 则每个字符将作为数组元素返回.

若分隔符是一个子字串而不是单个字符, 请参考下面的第二个示例.

StringSplit 有时候可以代替 StringInStr() 函数, 因为本函数可以创建数组.

小心: 如果您使用宏 @CRLF 拆分 2 个字符的字符串, 可能会出现额外的空白行.

相 关 函 数

StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight, StringUpper

函 数 示 例


#include <Array.au3>
Local $days = StringSplit("星期天,星期一,星期二,星期三,星期四,星期五,星期六", ",")
_ArrayDisplay($days,'Debug~~~')
;$days[1] 为 "星期天" ... ,而 $days[7] 则为 "星期六"

Local $text = "This\nline\ncontains\nC-style breaks."
Local $array = StringSplit($text, '\n', 1)
_ArrayDisplay($array,'Debug~~~')

provider with jb51.net (unicode)