我对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中的错误吗?
答案 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: \