字符串拆分隐藏并删除“\”字符

时间:2011-11-10 04:18:37

标签: string actionscript-3 split

我对String上的split函数有一个奇怪的问题。请看我的例子,我怎么能搞清楚?它是否默认从String中删除“\”?

public function code01():void {
    qrShow("C:/Documents and Settings/me/Desktop/a.gif;C:/Documents and Settings/me/Desktop/b.gif");
    qrShow("C:\Documents and Settings\me\Desktop\a.gif;C:\Documents and Settings\me\Desktop\b.gif");
}

public function qrShow(u:String):void{
    var imgArray:Array = u.split(";");
    for each(var addrs:String in imgArray) {
        trace (" --- " + addrs);
    }
}

结果如下:

  

--- C:/ Documents and Settings / me / Desktop / a.gif

     

--- C:/ Documents and Settings / me / Desktop / b.gif

     

--- C:Documents and SettingsmeDesktopa.gif< ---为什么没有“\”?

     

--- C:Documents and SettingsmeDesktop.gif< ---为什么没有“\”和“b”被改变!!!?

这是Flash中的错误吗?

2 个答案:

答案 0 :(得分:3)

不,这实际上是因为反斜杠\是ActionScript中的转义字符。它通常用于更改跟随它的任何内容的含义,但如果后面的字符没有特殊含义,则反斜杠就会被忽略。所以要修复你的代码,加倍反斜杠:

qrShow("C:\\Documents and Settings\\me\\Desktop\\a.gif;C:\\Documents and Settings\\me\\Desktop\\b.gif");

答案 1 :(得分:3)

您需要转义反斜杠(使用另一个反斜杠)。

例如,试试这个:

trace("\");

你会收到错误。

你需要这样做:

trace("\\"); // Output: \