在AppleScript中如何判断字符串包含\u0000并删除该控制字符?
该需求完全可以实现,以下是具体操作方案:
实现原理
在AppleScript中,\u0000是空控制字符,可通过character id 0直接声明,无需特殊转义。借助AppleScript原生的text item delimiters文本分隔能力即可完成空字符的批量移除,无需依赖额外组件。
完整实现代码
以下是完全匹配你要求的「先判断是否包含空字符,再执行移除」的逻辑:
-- 声明空控制字符常量 set nullChar to character id 0 -- varStr替换为你实际的字符串变量 set varStr to "E" & nullChar & "R" & nullChar & "R" & nullChar & "示例内容" -- 判断字符串是否包含空字符 if varStr contains nullChar then -- 存储当前默认分隔符,操作完成后还原,避免影响后续文本操作 set originalDelimiters to AppleScript's text item delimiters -- 将分隔符设置为空字符,按空字符拆分原字符串 set AppleScript's text item delimiters to nullChar set strSegments to every text item of varStr -- 用空字符串合并拆分后的所有片段,完成空字符移除 set AppleScript's text item delimiters to "" set varStr to strSegments as string -- 还原默认分隔符 set AppleScript's text item delimiters to originalDelimiters end if -- 处理完成,示例中输出结果为 "ERR示例内容" return varStr
简化版本
如果你不需要提前判断,直接执行移除操作不会对不包含空字符的字符串产生任何影响,可简化为如下代码:
set nullChar to character id 0 set originalDelimiters to AppleScript's text item delimiters set AppleScript's text item delimiters to nullChar set varStr to (text items of varStr) as string set AppleScript's text item delimiters to originalDelimiters
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

