'concat'에 해당되는 글 2건

  1. 2008.08.30 문자열
  2. 2008.07.13 값의 참조와 복제
AS3.0 Cookbook/문자열2008. 8. 30. 15:30

AS3에서는 문자열을 String이라는 데이터 타입으로 선언한다. 보통 지금까지 사용해왔던 속성이나 메서드가 있지만 새로 추가된 부분이나 자주 사용하지 않는 것 중에 몇 가지만 짚어보도록 한다.

문자열 합치는 메서드concat()이라는 메서드가 있다. 이는 원본 데이터에 가공 없이 추가된 문자열을 반환하는 역할을 한다.

문자열내에 어떠한 값을 찾기 위한 indexOf()lastIndexOf()가 있다. 이는 앞(indexOf)이나 뒤(lastIndexOf)에서부터 인수로 선언된 값을 탖아 인덱스 값으로 반환한다. 찾는 값이 없을 때는 -1을 반환한다.

알파벳문자열을 대문자나 소문자로 통일 할때는 toLowerCase()toUpperCase()를 사용하여 값을 비교하거나 체크할 수 있다.

문자열중에 인덱스 위치에 문자를 추출하기 위해서는 substring이나 substr, slice를 이용하여 해당 위치의 문자열을 추출/제거할 수 있다.

문자열안에 문자를 교체하거나 제거하기 위해서는 replace()를 사용하는데 이는 첫번째 파라미터의 값을 두번째 파라미터의 값으로 교체한다.

앞뒤로 뒤집는 메서드는 배열의 reverse()라는 메서드로 문자열을 split로 조각내어 뒤집어주고 다시 join하여 뒤집어 준다.

[ escape sequence ]

문자이름

ASCII 기호

C++ 코드

ASCII 코드(10)

ASCII 코드(16)

 개행(줄을 바꿈)

NL(LF)

\n

10

0xA

 horizontal tab(수평 탭)

HT

\t

9

0x9

vertical tab (수직 탭)

VT

\v

11

0xB

back space

BS

\b

8

0x8

carriage return

CR

\r

13

0xD

경보

BEL

\a

7

0x7

 back slash

\

\\

 92

 0x5c

 물음표

?

\?

63

 0x3F

 작은 따옴표

'

\'

39

 0x27

큰 따옴표 

"

\"

34

 0x22

 

Posted by 버터백통
AS3.0 Cookbook/배열2008. 7. 13. 18:09

String , int , Number...등의 원시(primitive)데이터는 변수를 복사하면 값이 복제가 된다.
var var01:String = "호랑이";
var var02:String = var01;
trace(var01)     // 출력 : 호랑이
trace(var02)     // 출력 : 호랑이

var02 = "원숭이";
trace(var01)    // 출력 : 호랑이
trace(var02)    // 출력 : 원숭이


이처럼 원본의 값을 이어받은 var02는 실제로 값이 복제되어 값에 변화가 있어도 원본과는 별도로 저장이 된다. 하지만 조합(composite)데이터 타입인 배열(정수색인 배열, 연관배열)은 데이터가 존재하는 메모리상의 주소만을 갖는다. 때문에 위에 코드처럼 선언하면 값이 참조가 된다. 이 참조된 값은 서로 연결되어 있으므로 한개의 값이 바뀌면 다른 참조 변수의 값도 바뀌게 된다. 하지만 AS3가 개선되고 부터는 복제를 할때 자동으로 concat()을 사용한 것 처럼 최상위 배열의 값이 복제가 된다.
var var01:Array = ["a" , "b" , "c"]
var var02:Array = var01;
(이 부분이 var var02:Array = var01.concat()과 같이 자동으로 최상위 배열은 복제를 하게 되었다.)
trace(var01)      // 출력 : a,b,c
trace(var02)      // 출력 : a,b,c
var01 = ["d" , "e" , "f"]
trace(var01)      // 출력 : d,e,f
trace(var02)      // 출력 : a,b,c


* concat() 은 매트릭스나 배열이나 문자열...등을 연결(연관)시키때 사용한다.

하지만 최상위 배열에 포함한 배열은 아직까지는 참조 값으로 저장한다.
var var01:Array = [];
var01.push(["a" , "b" , "c"])
var01.push(["1" , "2" , "3"])  
var var02:Array = var01 or var01.concat();
trace("var01 : " , var01);       //출력 : var01 :  a,b,c,1,2,3
trace("var02 : " , var02);      // 출력 : var02 :  a,b,c,1,2,3
var01[0][0] = ["d" , "e" , "f"];  
trace("var01 : " , var01);     // 출력 : var01 :  d,e,f,b,c,1,2,3
trace("var02 : " , var02);    
// 출력 : var01 :  d,e,f,b,c,1,2,3

이처럼 2차배열 보다 더 복잡한 배열의 구조안에서는 최상위 배열은 복제가 이루어 져도 그 하위 배열은 값을 참조하므로 한개의 값이 바뀌면 다른 배열들에도 영향을 미치게 된다.

Posted by 버터백통