2017-01-27 10 views
3

それぞれの2文字を特定の文字に変換するコードがありますが、このコードは機能しますが、出力には不要な単語 "null"が含まれています。私はそれを削除したい。コードのどの部分が間違っているのか分かりません。ActionScripts3の文字列から単語 "null"を削除するには

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  

出力文字列:あなたのdecode_stringの

nullABC 

答えて

5

初期値はnullです。私が間違っているコードの一部を識別することはできません、私はそれを削除したい

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  
関連する問題