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() 이 그렇게 대단한 기능을 갖고 있는 것은 아닙니다만, 조합해서 사용하기에 따라서는 상당히 유용한 기능을 제공할 수 있습니다. 활용 방법은 위와 같은 쿼리문 작성 말고도 여러 가지가 있지 않을까 생각됩니다.
그럼 : )
'TechLog' 카테고리의 다른 글
.NET에서의 Low-Level 키보드 입력 후킹 (0) | 2009.03.17 |
---|---|
닷넷에서의 더블 버퍼링(GDI+) (0) | 2009.02.11 |
MS, PerformancePoint Planning 단종 발표 (0) | 2009.01.29 |
ASP.net 2.0 - 2 ; ASP.net 2.0의 데이터 컨트롤 (0) | 2009.01.23 |
ASP.net 2.0 - 1 ; 개발환경 둘러보기 (0) | 2009.01.17 |