Programming/.NET

System.String 클래스는 대부분의 문자열관련 처리에 이용됩니다.

 

이 클래스에서 자주 사용되는 메서드는 문자열 포함여부를 확인하는 Contains나 문자열을 치환하는 Replace같은 메서드를 사용할 수 있습니다. 이들 메서드 중에서 특징되는 몇몇 메서드를 살펴보겠습니다.

 

Trim()메서드는 문자열의 공백을 제거하는데 자주 사용되지만

 

string s = " abc ";
Console.WriteLine(s.Trim());

 

특정 문자를 지정하면 해당 문자를 삭제한 결과를 반환합니다.

 

string s = "abc";
Console.WriteLine(s.Trim('a'));

 

문자열을 비교할때는 == 연산자를 사용할 수 있지만 대소문자를 구분하며 이를 무시할 수 없습니다.

 

string a = "abc";
string b = "ABC";

if (a == b)
    Console.WriteLine("같다.");
else
    Console.WriteLine("틀리다.");

 

하지만 equal 메서드를 사용하면 대소문자구분 여부를 지정할 수 있습니다.

 

string a = "abc";
string b = "ABC";

if (a.Equals(b, StringComparison.OrdinalIgnoreCase))
    Console.WriteLine("같다.");
else
    Console.WriteLine("틀리다.");

 

Format 메서드는 중괄호로 표현된 숫자에 맞춰 문자열을 출력가는 기능을 수행합니다.

 

string name = "cliel";
string s = string.Format("hello : {0}", name);
Console.WriteLine(s);

 

위 예제에서 {0}은 name으로 지정된 내용으로 치환될 것입니다. 이런 형식의 출력은 인자수에 제한받지 않으며 원한다면 얼마든지 늘려나갈 수 있습니다.

 

string name = "cliel";
int age = 100;
string address = "korea, seoul";

string s = string.Format("hello : {0}\nYour age : {1}\nYour address : {2}", name, age, address);
Console.WriteLine(s);

 

다만 이때는 중괄호의 숫자는 인자값의 순서대로 맞추어 치환될 것입니다.

 

중괄호 숫자를 지정할때 ,[번호] 형식을 추가하면 해당 길이만큼 정렬공간을 확보하고 출력하게 됩니다. 예를 들어 {0,5}면 5칸의 공백을 확보하고 오른쪽 정렬을, {0,-10}이면 10칸의 공간을 확보하고 왼쪽정렬을 수행한뒤 내용을 출력합니다.

 

int i = 5;
int j = 2;

string s = string.Format("{0,-5} * {1,-5} = {2, 5}", i, j, (i + j));
Console.WriteLine(s);

 

또한 정렬이외에 :[타입] 형식으로 출력될 형식을 지정할 수도 있습니다.

 

int price = 1000;

string s = string.Format("판매가 : {0,10:C}원", price);
Console.WriteLine(s);

 

아래 표는 출력가능한 형식을 정리한 표입니다.

 

 

 형식

 설명

 숫자

 C

 통화형식

 D

 10진수

 E

 공학

 F

 고정 소수점

 G

 일반(기본값)

 N

 숫자 단위 구분

 P

 백분율

 R

 반올림 표시

 X

 16진수

 날짜

 d

 년-월-일

 D

 년월일요일 표시

 t

 오전/오후 시:분

 T

 오전/오후 시:분:초

 f

 년월일요일 오전/오후 시:분

 F

 년월일요일 오전/오후 시:분:초

 g

 년-월-일 오전/오후 시:분

 G

 년-월-일 오전/오후 시:분:초

 M

 월일

 Y

 년월

 

'Programming > .NET' 카테고리의 다른 글

[ASP.NET MVC] 유효성 확인 - 1  (0) 2017.09.15
[C#] SqlDataReader  (0) 2017.08.30
[C#] String  (0) 2017.08.22
[C#] 확장 메서드(Extension Method) - 2  (0) 2017.08.16
[C#] ?? 연산자  (0) 2017.08.10
[C#] 형변환(캐스팅 - Casting)  (0) 2017.08.01
0 0