在ActionScript中拆分字符串
在ActionScript中,您可以为split方法传入一个空分隔符,它会将字符串拆分为一个数组,如下所示:在ActionScript中拆分字符串,actionscript,Actionscript,在ActionScript中,您可以为split方法传入一个空分隔符,它会将字符串拆分为一个数组,如下所示: var myString:* = "Test"; var myArray:* = myString.split(""); // myArray contains "T", "e", "s", "t" 我想知道的是,数组是Unicode字符,包含8个字节还是ASCII字符,包含4个字节?注意:您可以接受发布的代码,因为AS3遵循与JS相同的ECMAscript约定,但是。。。查看代码的另
var myString:* = "Test";
var myArray:* = myString.split("");
// myArray contains "T", "e", "s", "t"
我想知道的是,数组是Unicode字符,包含8个字节还是ASCII字符,包含4个字节?注意:您可以接受发布的代码,因为AS3遵循与JS相同的ECMAscript约定,但是。。。查看代码的另一种方式,AS3方式 变量名称:类型=值 AS3中的数组就是这样,一组项的集合!它们可以是字符串、数字、字节或其他任何形式。单个数组对象可以在不同索引处具有混合的项类型 不过,您询问了字节,所以我希望您理解拆分字符串的数组结果与ByteArray不同。可以说这是一个通用数组 根据经验,Flash字符串的默认模式似乎是Unicode/UTF-8。所以从技术上讲,你有4个字节直到。。您决定实际创建一个真正的字节数组,并选择如何将字符串写入字节将决定最后是4还是8
var myString:String = "Test";
var myBytes:ByteArray = new ByteArray();
myBytes.writeMultiByte( myString, "ASCII" ); //length = 4 bytes
myBytes.writeMultiByte( myString, "Unicode" ); //length = 8 bytes
PS:Flash将UTF-8 4字节和UTF-16 8字节都视为Unicode。在代码中加入Unicode将使其默认为UTF-16,但您可以改为设置UTF-8以获得4字节的结果。谢谢您的解释。正如你可能知道的,我对这个lol感到困惑。是的,我自己也去过。我在答案的底部加了一个PS。如果您需要再次检查:
var myString:String = "Test";
var myBytes:ByteArray = new ByteArray();
myBytes.writeMultiByte( myString, "ASCII" ); //length = 4 bytes
myBytes.writeMultiByte( myString, "Unicode" ); //length = 8 bytes