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