본문 바로가기

Lang/C#

[C#] 자주 사용하는 문자열 관련 함수

728x90

# 문자열 함수 리스트

함수와 서식 설명
PadLeft(10) 문자열의 길이를 10으로 만들면서 좌측에 공백 만들기
PadRight(15) 문자열의 길이를 15로 만들면서 우측에 공백 만들기
IndexOf("대상 문자열") 가장 먼저 나오는 대상 문자열의 첫 번째 인덱스를 리턴합니다.
없으면 -1 리턴.
LastIndexOf("대상 문자열") 가장 마지막에 나오는 대상 문자열의 첫 번째 인덱스를 리턴합니다.
없으면 -1 리턴.
IndexOfAny( 문자 배열 ) 문자 배열에 있는 문자를 발견하면 그 인덱스를 리턴합니다.
Substring(2, 3) 문자열 2번 인덱스에서부터 3개 문자를 리턴합니다.
Contains("x") 문자열 "x"가 포함되어 있으면 true을 리턴합니다.
StartsWith("y") 문자열 "y"로 시작하는 문자열이면 true를 리턴합니다.
EndsWith("z") 문자열 "z"로 끝나는 문자열이면 true를 리턴합니다.
Insert(3,"abc") [3]자리부터 문자열 "abc"를 끼워넣습니다. 나머지는 뒤로 밀려납니다.
Remove(2, 3) 문자열의 두 번째 문자부터 3개를 삭제합니다.
Replace("x", " ") 문자열에 있는 모든 x를 공백으로 대체합니다.
Trim() 문자열 양쪽의 공백을 제거한 후 리턴합니다.
TrimStart() 문자열 앞쪽의 공백을 제거한 후 리턴합니다.
TrimEnd() 문자열 뒤쪽의 공백을 제거한 후 리턴합니다.
Split(",") 문자열 ","기준으로 대상 문자열을 잘라 문자열 배열을 리턴합니다.
ToCharArray() 문자열을 각 문자로 나눠 문자 배열로 리턴합니다.
Join("&", 문자열 배열) 문자열 배열의 문자열들을 "&"로 이어붙여 하나의 문자열로 리턴합니다.

 

 

# PadLeft(), PadRight()

string num = "12";
string name = "hamberger";
string price = "$4,000";

var stringLine = num.PadRight(5);	// 문자열 길이가 5가 되면서 우측 공백
stringLine += name.PadRight(10);	// 문자열 길이가 10이 되면서 우측 공백
stringLine += price.PadLeft(10);	// 문자열 길이가 10이 되면서 좌측 공백

Console.WriteLine(stringLine);

num = "1234";
name = "pizza";
price = "$10,000";

stringLine = num.PadRight(5);
stringLine += name.PadRight(10);
stringLine += price.PadLeft(10);

Console.WriteLine(stringLine);
출력결과 ( 콘솔에서 확인해야 명확합니다)
12     hamberger      $4,000
1234 pizza             $10,000

 

 

 

# IndexOf(), LastIndexOf(), IndexOfAny(), Substring()

string string1 = "01x3456x89";
int index = string1.IndexOf("x");	// 가장 먼저 나오는 x의 인덱스 2를 리턴합니다.
Console.WriteLine(index);

index = string1.LastIndexOf("x");	// 가장 나중에 나오는 x의 인덱스 7을 리턴합니다.
Console.WriteLine(index);

string string2 = "aaa (1234) cccc [5678] ee";

char[] checkChar = { '(', '{', '[' };

int endPosition = 0;

// checkChar에 있는 문자 중 하나라도 발견하면
// 그 문자와 매칭되는 문자를 startChar와 endChar로 설정한 후
// 그 사이에 있는 문자를 출력하고 다음으로 넘어갑니다.
// 문자열이 끝나면 반복문이 끝납니다.
while (true)
{
    int startPosition = string2.IndexOfAny(checkChar, endPosition);
    if (startPosition == -1) break;

    string startChar = string2.Substring(startPosition, 1);
    char endChar = ' ';

    switch (startChar)
    {
        case "(":
            endChar = ')';
            break;
        case "{":
            endChar = '}';
            break;
        case "[":
            endChar = ']';
            break;
    }

    startPosition++;
    endPosition = string2.IndexOf(endChar, startPosition);
    int length = endPosition - startPosition;
    Console.WriteLine(string2.Substring(startPosition, length));
}
출력결과
2
7
1234
5678

 

# Remove(), Replace(), Insert()

string phoneNumber = "010-1234-5689";
string result = phoneNumber.Remove(3, 4);	// 문자열[3]부터 4개만큼 삭제합니다.
Console.WriteLine(result);

result = phoneNumber.Replace("-", "_");		// 문자열의 모든 "-"를 "_"로 바꿉니다.
Console.WriteLine(result);

result = phoneNumber.Insert(3, "(phone)");  // 문자열[3]에 "(phone)"을 끼워넣습니다.
Console.WriteLine(result);
출력 결과
0104-5689
010_1234_5689
010(phone)-1234-5689

 

 

 

# Trim(), TrimStart(), TrimEnd()

string phoneNumber = "   010 1234 5689   ";
string result = phoneNumber.Trim();		// 문자열의 양쪽 공백 제거
Console.WriteLine("S" + result + "E");

result = phoneNumber.TrimStart();		// 문자열의 앞쪽 공백 제거
Console.WriteLine("S" + result + "E");

result = phoneNumber.TrimEnd();			// 문자열의 뒤쪽 공백 제거
Console.WriteLine("S" + result + "E");
출력결과
S010 1234 5689E
S010 1234 5689     E
S     010 1234 5689E

 

 

# StartsWith(), EndsWith()

string[] id = { "A123", "B123", "A456", "B456" };

// "B"로 시작하는 문자열 출력
foreach (var item in id)
{
    if(item.StartsWith("B"))
        Console.WriteLine(item);
}

Console.WriteLine();

// "56"으로 끝나는 문자열 출력
foreach (var item in id)
{
    if (item.EndsWith("56"))
        Console.WriteLine(item);
}
출력결과
B123
B456

A456
B456

 

 

 

# split(), ToCharArray(), Join()

string myCities = "seoul,daejeon,busan,jeju";
string[] cities = myCities.Split(',');		// ',' 쉼표를 기준으로 문자열을 분리합니다.
foreach (string city in cities)
    Console.WriteLine(city);

char[] charArray = myCities.ToCharArray();	// char 단위로 분리합니다.
foreach (char c in charArray)
    Console.Write(c + " ");

Console.WriteLine();

string result = String.Join(" : ", cities);	// 2번줄의 cities를 이어붙입니다.
Console.WriteLine(result);
출력 결과
seoul
daejeon
busan
jeju
s e o u l , d a e j e o n , b u s a n , j e j u
seoul : daejeon : busan : jeju
728x90

'Lang > C#' 카테고리의 다른 글

[C#] sealed 한정자  (0) 2022.12.22
[C#] out var 파라미터  (0) 2022.12.20