2014-09-30 46 views
0

在ActionScript中的字符串,你可以通過在爲split方法的空白分隔符,它會打破串起來到一個數組,像這樣:拆分在ActionScript

var myString:* = "Test"; 
var myArray:* = myString.split(""); 
// myArray contains "T", "e", "s", "t" 

什麼我不知道,如果是該數組是Unicode字符,包含8個字節或ASCII字符,包含4個字節?

回答

0

(注:你沒問題的發佈代碼,因爲AS3如下的ECMAScript規範一樣JS,但...)的另一種方式來看待你的代碼,AS3的方式...

var可變名稱Type=Value;

var myString:String = "Test"; 
var myArray:Array = myString.split(""); 
// myArray contains "T", "e", "s", "t" 

AS3中的陣列就是這樣一個項目的分組集合!它們可以是字符串,數字或字節或其他。一個Array對象可以在不同索引處具有混合項目類型

你問到字節雖然所以我希望你能理解從「分裂」的字符串是不一樣的事,作爲一個ByteArrayArray結果。可以這麼說,這是一個「通用」數組。

Flash String的默認模式似乎是來自體驗的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字節結果。

+0

感謝您的解釋。正如你可能會說的那樣,我對這個哈哈感到困惑。 – Icemanind 2014-10-03 02:07:02

+0

是的,我一直在那裏。我在答案的底部添加了一個PS。如果您需要仔細檢查:** [AS3支持的字符集](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/charset-codes.html)** – 2014-10-03 02:44:03