2017-01-27 78 views
3

我有代碼將每2個數字轉換爲特定字符,此代碼工作,但輸出與不需要的單詞「空」。我想刪除它。我無法確定哪部分代碼是錯誤的。如何刪除字符串中的單詞「空」ActionScript3中

var encoded_numbers:String = "102030"; 
var sub:String; 
var decode_string:String; 

for (var i2:int = 0; i2 < encoded_numbers.length; i2 += 2) 
{ 
    sub = encoded_numbers.charAt(i2) + encoded_numbers.charAt(i2 + 1); 
    //trace(sub); 

    switch(sub) 
    { 
    case "10": 
     decode_string += "A"; 
     break; 
    case "20": 
     decode_string += "B"; 
     break; 
    case "30": 
     decode_string += "C"; 
     break; 

    } 

} 
trace(decode_string);//convert  

輸出字符串:

nullABC 

回答

5

您decode_string的初值爲空。剛分配初始值如下:

var decodeString:String = ""; 
+0

感謝您的簡單答案。 –

4

」 ......但輸出是不必要的詞‘空’我想刪除它,我不能確定哪些部分代碼是錯誤的。 「。

當你說:var decode_string:String;聲明的變量,但它沒有價值所以默認它給「空」的結果。以後的問題是當您使用+=運算符來進一步追加您的ABC字母時,最後的字符串現在變成了nullABC

要解決:

讓你的琴絃空/空(但絕不值以下)使用String = ""; ...

var encoded_numbers:String = "102030"; 
var sub:String = ""; 
var decode_string:String = ""; 

還要考慮substr提取文本的部分(而不是charAt)..

for (var i2:int = 0; i2 < encoded_numbers.length; i2 += 2) 
{ 
    sub = encoded_numbers.substr(i2, 2); //gets 2 letters from position of i2 
    //trace(sub); 

    switch(sub) 
    { 
     case "10": 
      decode_string += "A"; 
      break; 
     case "20": 
      decode_string += "B"; 
      break; 
     case "30": 
      decode_string += "C"; 
      break; 

    } 

} 
trace(decode_string);//convert  
相關問題