[ActionScript] 문자열에 대한 Trim 함수

액션 스크립트는 문자열에 대한 Trim 함수를 제공하지 않습니다. 해서 제가 사용하고 있는 Trim 함수를 소개해 드립니다. 재귀호출 함수를 사용해서 그다지 속도는 나질 않지만…. 제가 사용함에 있어서 문제가 없기에 소개해 드립니다.

public class StringHelper
{
    static public function trim(str:String, char:String):String {
        return trimBack(trimFront(str, char), char);
    }
  
    static public function trimFront(str:String, char:String):String {
        char = stringToCharacter(char);
        if (str.charAt(0) == char) {
            str = trimFront(str.substring(1), char);
        }
        return str;
    }
  
    static public function trimBack(str:String, char:String):String {
        char = stringToCharacter(char);
        if (str.charAt(str.length - 1) == char) {
            str = trimBack(str.substring(0, str.length - 1), char);
        }
        return str;
    }

    static public function stringToCharacter(str:String):String {
        if (str.length == 1) {
            return str;
        }
        return str.slice(0, 1);
    }
}

사용방법은 StringHelper.trim(”    ABC    “, ” “)와 같으며 이에 대한 결과는 “ABC”가 됩니다. 참고로 이 함수는 제가 만든 것이 아니고 외국의 블로그에서 발췌해 사용한 것인데… 어느 블로그인지.. 시간이 많이 흘러 알수가 없네요..

CSV에서 컴마(,) 표현은?

CSV에서 데이터의 구분자로 컴마(,)를 사용하는데.. 그렇다면 값으로써 컴마(,)의 표현법은?

“,”

그렇다면, 쌍따움표의 표현법은?

“””

예를 들어서, “가나다”를 CSV로 표기하면, “””가나다”””가 됨.

XML 포맷이 그립도다…

POLYHEDRALSURFACEZ(POLYGONZ((232875.948685483 317148.417911287 73.32,232835.839685483 317146.469911287 73.32,232835.333685483 317156.028911287 73.32,232875.516685483 317158.161911287 73.32,232875.948685483 317148.417911287 73.32)),POLYGONZ((232835.839685483 317146.469911287 56.19,232835.839685483 317146.469911287 73.32,232835.333685483 317156.028911287 56.19)),POLYGONZ((232835.333685483 317156.028911287 56.19,232835.839685483 317146.469911287 73.32,232835.333685483 317156.028911287 73.32)),POLYGONZ((232835.333685483 317156.028911287 56.19,232835.333685483 317156.028911287 73.32,232875.516685483 317158.161911287 56.19)),POLYGONZ((232875.516685483 317158.161911287 56.19,232835.333685483 317156.028911287 73.32,232875.516685483 317158.161911287 73.32)),POLYGONZ((232875.516685483 317158.161911287 56.19,232875.516685483 317158.161911287 73.32,232875.948685483 317148.417911287 56.19)),POLYGONZ((232875.948685483 317148.417911287 56.19,232875.516685483 317158.161911287 73.32,232875.948685483 317148.417911287 73.32)),POLYGONZ((232875.948685483 317148.417911287 56.19,232875.948685483 317148.417911287 73.32,232835.839685483 317146.469911287 56.19)),POLYGONZ((232835.839685483 317146.469911287 56.19,232875.948685483 317148.417911287 73.32,232835.839685483 317146.469911287 73.32)))

위의 데이터를 파싱해서 원하는 정보를 뽑아 내야 하는데.. 이게 XML로 되어 있으면 얼마나 좋을까.. 생각하며 문자 하나 하나.. 정성스럽게 파싱해 내는 코드를 한땀.. 한땀.. 작성하다보니.. 이 추운 겨울에도 몸이 후끈 후끈 달아 오르는군요..! ㅡ,.ㅡ; 사실 위의 문자열은 일부고.. 좀더 복잡합니다..

예전에 읽고 듣고해서 짐작은 했던.. XML의 효율성은 잘 알고 있었지만.. 정작 퍼포먼스가 떨어진다는 이유로 멀리했더랬는데요.. 위의 데이터를 파싱해 보니.. 피부로 XML의 효율성이 팍.. 팍.. 와닿습니다.. XML.. 니가 진정한 데이터 교환 포맷의 왕이로다! 인정..!

[ActionScript] object에 저장된 값 읽기

액션스크립트의 최상위 객체인 Object는 해쉬 테이블 자료구조입니다. 즉, 키와 값으로 구성된 리스트입니다. 키의 타입은 문자열이며 값의 타입은 다시 Object라고 이해하면 별 무리가 없을 것입니다. Object의 이러한 특성으로 인해 액션스크립트를 이용해 매우 유연한 코딩을 가능하게 해줌과 동시에 이러한 애매모호한 타입에 대해 별도의 문서와 주석이 없을 경우 유지보수에 상당한 비용이 발생하게 됩니다. 뭐 여튼… Object에 저장된 키와 값에 대한 리스트를 얻어오는 코드가 이 글의 주요 정리 내용입니다. 필요할때.. 맨날~ 까먹기에.. 정리해 봅니다.

for(var key:String in _conditionsCtrls)
{
    var wc:IWhereConditionable = _conditionsCtrls[key] as IWhereConditionable;

    ....

위의 코드에서 Object 타입의 _conditionsCtrls에 저장된 키 문자열을 key라는 변수에 할당하고 이렇게 얻은 키를 통해 _conditionsCtrls[key]와 같은 형식으로 Object 타입의 값을 얻어옵니다. Object 타입이니.. 형변환을 통해 원하는 타입으로 변환할 수 있습니다.