본문 바로가기

TechLog

string.Format의 활용

string.Format 활용

string.Format 은 언뜻 보면 예전 c/c++ sprint와 비슷한 기능으로 볼 수도 있지만, Formatting Type에 대한 이해가 생기면 매우 강력한 문자열 편집 기능을 활용할 수 있습니다. 그 활용의 예를 들어 보겠습니다.

 

 

안녕하세요 : )

 

여러가지 타입을 문자열로 변환하는 프로그램, 특히나 그 내용을 커스터마이징해야 할 경우에는 string.Format을 유용하게 쓸 수 있습니다. 일단 그 예와, 제가 활용하는 방법을 적어볼까 합니다.

 

그럼 시작합니다.

 

 

string.Format()

 

일단 간단한 코드를 적고 시작하자 :

 

int a = 10;
strTemp = string.Format("a is = {0}", a);

  

위와 같은 코드를 입력하면, strTemp "a is = 10"이란 문자열이 할당된다. 이것만으로도 꽤 유용하지만, a 변수의 위치에는 int 형 뿐만 아니라 다른 여러가지 타입의 개체를 인자로 넘겨줄 수 있다.

 

string.Format("what is {0}", "what")

"what is what"

string.Format("datetime.now is {0}",DateTime.Now)

"datetime.now is 2004-12-22 오후 1:46:42"

 

어떤 개체이든 ToString() 메서드를 구현하고 있는 개체라면 string.Format의 인자로 쓰일 수 있으며, 다음처럼 여러 개의 인자를 넘겨주는 것도 가능하다 :

 

string.Format("{0} + {1} = {2}", 10, 20, 10+20)

"10 + 20 = 30"

 

이것으로 끝인가? 아니다. 각 인자에 대한 형식 지정도 가능하다 :

 

string.Format("{0:0000.00}",10.5)

"0010.50"

string.Format("{0:####.##}",10.5)

"10.5"

string.Format("{0:####.##}",10.567)

"10.57"

string.Format("{0:e}",10.567)

"1.056700e+001"

string.Format("{0:X}",1024421)

"FA1A5"

string.Format("{0:gg yyyy M d dddd tt h m s zzz}", DateTime.Now)

"서기 2004 12 22 수요일 오후 1 59 46 +09:00"

 

Currency Percent, fixed-point 등 여러가지가 있지만, 그 예를 여기 다 든다는 것은 무의미하므로 추가적인 내용은 msdn에서 Formatting Type을 검색해보기 바란다.

 

그리고, 다른 활용방법으로 Kenial string.Format()을 이렇게 사용하기도 한다 :

 

string strTablename = "tbTemp";

string[] strArray = {strTablename, "Kenial","test","1234"};

 

string strTemplateInsert = "Insert Into {0} values ('{1}','{2}',{3});";

strQuery = string.Format(strTemplateInsert, strArray);            

 

결과는 "Insert Into tbTemp values ('Kenial','test',1234);"가 되며, 이런 식으로 자주 쓰는 쿼리의 템플릿을 만들어놓고 레코드에 필요한 내용을 넣어서 간단한 쿼리 용도로 사용할 수도 있다.

 

 

정리

 

string.Format() 이 그렇게 대단한 기능을 갖고 있는 것은 아닙니다만, 조합해서 사용하기에 따라서는 상당히 유용한 기능을 제공할 수 있습니다. 활용 방법은 위와 같은 쿼리문 작성 말고도 여러 가지가 있지 않을까 생각됩니다.

 

그럼 : )