", 11.22, 11.23, 21.23" 这串字串我想变成一组数组,怎么都不行都
", 11.22, 11.23, 21.23"这串字串我想变成一组数组,怎么都不行都,数字前面还有像空格的间隙,请大神帮忙试试看,指教一下小白!#include <Array.au3>; 调试输出函数Func DebugMsg($sMsg) ConsoleWrite("[调试] " & $sMsg & @CRLF)EndFuncLocal $str = ", 11.22, 11.23, 21.23"; 1. 去除所有空格$str = StringReplace($str, " ", ""); 2. 去除首尾逗号$str = StringRegExpReplace($str, "^,|,$", ""); 3. 分割字符串为数组Local $arr = StringSplit($str, ",", 2) ; 参数2返回基础数组; 4. 转换为数值类型(可选)For $i = 0 To UBound($arr) - 1 $arr[$i] = Number($arr[$i])Next; 5. 验证输出DebugMsg("数组长度: " & UBound($arr))DebugMsg("数组内容: " & _ArrayToString($arr, ", "))_ArrayDisplay($arr, "处理结果")ConsoleWrite("数组数量: " & UBound($arr) & @CRLF)$str = ", 11.22, 11.23, 21.23"$str = StringRegExpReplace($str, "^\s*,\s*|\s*,\s*$", ""); 清理首尾$arr = StringSplit($str, ",", 2)For $i = 0 To UBound($arr) - 1 $arr[$i] = Number(StringStripWS($arr[$i], 7)); 去空格并转数值NextConsoleWrite("数组长度: " & UBound($arr) & @CRLF)ConsoleWrite("数组内容: " & _ArrayToString($arr, ", ") & @CRLF)=================================================================================
+>设置热键...--> 按下 Ctrl+Alt+Break 重新启动 或 Ctrl+BREAK 停止.[调试] 数组长度: 3[调试] 数组内容: 11.22, 11.23, 21.23数组数量: 3数组长度: 3数组内容: 11.22, 11.23, 21.23+>01:26:06 AutoIt3.exe 执行完毕.返回码:0+>01:26:06 AutoIt3Wrapper 执行完成.>Exit code: 0 Time: 12.81
我猜可以用正则,不过要先看源数据和目标数据间的规律...
二○二五年八月十日 本帖最后由 3131210 于 2025-8-10 20:45 编辑
#include <Array.au3>
Local $sSource = ', 11.22, 11.23, 21.23'
Local $aSRE = StringRegExp($sSource, '[\d\.]+', 3)
If Not @Error Then _ArrayDisplay($aSRE, UBound($aSRE))
本帖最后由 msold5 于 2025-8-13 10:23 编辑
感觉用Split更方便,比如:$strs[]=StringSplit(", 11.22, 11.23, 21.23",",")
页:
[1]