如何从ActionScripts3中的字符串中删除单词“null”

时间:2017-01-27 11:11:05

标签: actionscript-3

我有将每个2个数字转换为特定字符的代码,此代码有效,但输出带有不需要的单词“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      

输出字符串:

nullABC

2 个答案:

答案 0 :(得分:5)

您的decode_string的初始值为null。只需按如下方式分配初始值:

var decodeString:String = "";

答案 1 :(得分:4)

  

&#34; ...但是输出带有不需要的单词&#34; null&#34;。我想删除它。我无法确定哪部分代码是错误的。&#34;

当您说:var decode_string:String;时,声明了一个变量,但它没有值,所以默认情况下会给出&#34; null&#34;的结果。以后出现的问题是,当您使用+=运算符进一步附加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