2017-01-27 2 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; 당신은 변수를 선언 했지만 그것은 "널 (null)"의 결과를 제공 기본적으로 너무 값이 없습니다. 나중에 += 연산자를 사용하여 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  
관련 문제