BLOG main image
Category (342)
MySpace (89)
Astronomy (50)
Development (178)
Drum (25)
linux에서 subversion설정
누리에 없을 자그마한 자국
살라딘의 생각
saladin's me2DAY
3D Avata - BuddyPoke
기찬 개발이야기
[FLEX] ANT로 ASDOC 사용하기
THLIFE.net
Flash10 대응 Textcube 1.7.5.1..
텍스트큐브 공지사항
«   2008년 11월   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
325694 Visitors up to today!
Today 194 hit, Yesterday 963 hit
/Development/Flex/AIR 관련글 보기 2007년 06월 15일 14시 03분
Flex의 String 에는 문자열의 앞,뒤쪽의 공백을 지워주는 trim() 함수와
특정문자로 문자열의 요소를 바꿔주는 replace()함수 등이 존재하지 않는다.
String에 replace가 있긴 하지만, 문자열에서 바꾸고자 하는 문자와 맞는 첫번째 문자만 바꿔주기 때문에 진정한 replace를 구현하지 못한다.

이 문서를 올리고 나서 열이아빠님께서 한가지 말씀해 주셔서 알게된 점입니다.
위에 - 표시를 한 부분은 틀립니다.

var str:String = "안녕하세요\n제 이름은 지돌스타\n입니다.";
str2 = str.replace("\n", " ");
trace(str2); // "안녕하세요 제 이름은 지돌스타\n입니다.";

만약 str.replace("\n"," "); 대신  str.replace(/\n/g, " "); 를 하면
결과는 "안녕하세요 제 이름은 지돌스타 입니다." 로 나옵니다.

자세한 내용은 http://flexdocs.kr/docs/flex2/langref/s ··· 3replace() 를 참고하세요

제가 잘 모르고 글을 올리게 되었네요.
지적해 주신 열이아빠님께 감사드립니다.



아래는 http://flexdocs.kr/docs/flex2/langref/s ··· ssummary 에서 가져온 코드이다.

각 함수를 설명하면 다음과 같다.
  • replace(): String 의 split() Methods와 join() Methods를 호출해, 새로운 string에게 건네지는 string의 substring를 삭제합니다.
  • trim(): 건네받은 string를 사용해 trimBack()trimFront() 의 양쪽 모두를 호출해, 갱신된 string를 돌려줍니다.
  • trimFront(): string의 최후로부터 개시해 선두로 향해, string의 말미의 캐릭터가 char Parameters에 일치하지 않게 될 때까지, char Parameters에 일치하는 모든 캐릭터를 재귀적으로 삭제해, 갱신된 string를 돌려줍니다.
  • trimBack(): string의 최후로부터 개시해 선두로 향해, string의 말미의 캐릭터가 char arameters에 일치하지 않게 될 때까지, char Parameters에 일치하는 모든 캐릭터를 재귀적으로 삭제해, 갱신된 string를 돌려줍니다
  • stringToCharacter(): 건네받은 string의 선두 캐릭터를 돌려줍니다


String 활용 (Language : java)
package {
    import flash.display.Sprite;

    public class StringExample extends Sprite {
        public function StringExample() {
            var companyStr:String = new String("     Company X");
            var productStr:String = "Product Z Basic     ";
            var emptyStr:String = " ";
            var strHelper:StringHelper = new StringHelper();

            var companyProductStr:String = companyStr + emptyStr + productStr;
            trace("'" + companyProductStr + "'");    // '     Company X Product Z Basic     '

            companyProductStr = strHelper.replace(companyProductStr, "Basic", "Professional");
            trace("'" + companyProductStr + "'");    // '     Company X Product Z Professional     '

            companyProductStr = strHelper.trim(companyProductStr, emptyStr);
            trace("'" + companyProductStr + "'");    // 'Company X Product Z Professional'
        }
    }
}

class StringHelper {
    public function StringHelper() {
    }

    public function replace(str:String, oldSubStr:String, newSubStr:String) :String {
        return str.split(oldSubStr). join(newSubStr);
    }

    public function trim(str:String, char:String) :String {
        return trimBack(trimFront(str, char), char);
    }

    public function trimFront(str:String, char:String) :String {
        char = stringToCharacter(char);
        if (str.charAt(0) == char) {
            str = trimFront(str.substring(1), char);
        }
        return str;
    }

    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;
    }

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

글쓴이 : 지돌스타 (http://blog.jidolstar.com/125  )
이 글의 관련글
Trackback Address :: http://blog.jidolstar.com/trackback/125
BlogIcon 열이아빠 | 2007년 06월 15일 15시 13분 | PERMALINK | EDIT/DEL | REPLY
replace 에서 정규식을 사용하면서 /g 옵션을 주게 되면
해당 문자열의 모든 대상에 대한 변경이 가능합니다.
원하신 의도가 맞나 모르겠네요..ㅠㅠ
BlogIcon 지돌스타 | 2007년 06월 15일 15시 49분 | PERMALINK | EDIT/DEL
열이아빠님 감사합니다. 제가 잘못된 지식을 가지고 있었네요. 덕분에 공부했습니다. ^^
Name
Password
Homepage
Secret