본문 바로가기
C#

C# 문자열 조작

by violetoz 2013. 4. 26.

string 클래스는 문자열과 관련된 수많은 메소드들을 가지고 있습니다. 이들의 목적은 문자열의 내용을 검색하거나 조작하기 위함입니다. 이번 포스트에서는 string의 메소드들을 정리해보았습니다. 단순히 나열하기 보다는 무엇을 하고 싶다는 것을 기준으로 필요할 때 찾아 볼 수 있도록 하였습니다.

 

원하는 작업

string이 제공하는 필드 또는 메소드

사용 예

출력 결과

알파벳 문자들을 대문자로 바꾼다.

string ToUpper()

string str = "Super Star";
str = str.ToUpper();

Console.WriteLine(str);

SUPER STAR

알파벳 문자들을 소문자로 바꾼다.

string ToLower()

string str = "Super Star";
str = str.ToLower();

Console.WriteLine(str);

super star

문자열의 일부를 제거한다.

string Remove(int startIndex)

string str = "Super Star";

str = str.Remove(5);

Console.WriteLine(str);

Super

string Remove(

    int startIndex,

    int count)

string str = "Super Star";

str = str.Remove(5, 3);

Console.WriteLine(str);

Superar

문자열의 양끝에 있는 공백을 제거한다.

string Trim()

string str = "   Super Star   ";

str = str.Trim();

Console.WriteLine(str);

Super Star

문자열 앞부분의 공백들을 제거한다.

string TrimStart()

string str = "   Super Star   ";

str = str.TrimStart();

Console.WriteLine(str);

Super Star  

(오른쪽 끝에 공백은 존재)

문자열의 일부를 구한다.

string Substring(int startIndex)

string str = "Super Star";

str = str.Substring(6);

Console.WriteLine(str);

Star

string Substring(

    int startIndex,

    int length)

string str = "Super Star";

str = str.Substring(2, 3);

Console.WriteLine(str);

per

문자열을 삽입한다.

string Insert(

    int startIndex,

    string value)

string str = "Super Star";

str = str.Insert(6, "Real ");

Console.WriteLine(str);

Super Real Star

찾고자 하는 문자열이 있는지 검색한다.

bool Contains(string value)

string str = "Super Star of the World";

bool isThereWord = str.Contains("Star");

Console.WriteLine(isThereWord);

True

문자열의 길이를 알고 싶다.

int Length

string str = "Super Star";

Console.WriteLine(str.Length);

10

특정 문자를 기준으로 문자열들을 분리하고 싶다.

string[] Split(params char[] separator)

Char[] delimiters = { ' ', ',', '.' };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:

There
are
dogs


cats
and
pigs


Sheeps
are
not
here

 

string[] Split(

    char[] separator,

    int count)

Char[] delimiters = { ' ', ',', '.' };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters, 7);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:
There
are
dogs


cats
and
pigs. Sheeps are not here.

string[] Split(

    char[] separator,

    StringSplitOptions options)

Char[] delimiters = { ' ', ',', '.' };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:
There
are
dogs
cats
and
pigs
Sheeps
are
not
here

string[] Split(

    string[] separator,

    StringSplitOptions options)

string[] delimiters = {"is", "are", "and", " " , ".", "," };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:
There
dogs
cats
pigs
Sheeps
not
here

string[] Split(

    char[] separator,

    int count,

    StringSplitOptions options)

Char[] delimiters = { ' ', ',', '.' };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters, 7, StringSplitOptions.RemoveEmptyEntries);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:

There
are
dogs
cats
and
pigs
Sheeps are not here.

string[] Split(

    string[] separator,

    int count,

    StringSplitOptions options)

string[] delimiters = {"is", "are", "and", " " , ".", "," };
string sentence = "There are dogs, cats and pigs. Sheeps are not here.";
string[] wordsSplit = sentence.Split(delimiters, 5, StringSplitOptions.RemoveEmptyEntries);

 

Console.WriteLine("The words split:");
for (int i = 0; i < wordsSplit.Length; i++)
    Console.WriteLine(wordsSplit[i]);

The words split:
There
dogs
cats
pigs
Sheeps are not here.

문자열을 char형 배열로 바꾸고 싶다.

char[] ToCharArray()

string str = "Super Star";
char[] chars = str.ToCharArray();

Console.WriteLine(chars);

Super Star

char형 배열을 문자열로 바꾸고 싶다.

string(char[] value)

(string의 생성자 중 하나)

char[] chars = new char[] {'S', 'u', 'p', 'e', 'r', ' ', 'S', 't', 'a', 'r'};
string str = new string(chars);
Console.WriteLine(chars);

Super Star

기존 문자열의 왼쪽에 공백을 채워 새로운 문자열을 만들고 싶다.

string PadLeft(int totalWidth)

string str = "Super Star";
str = str.PadLeft(15);
Console.WriteLine(str);

     Super Star

기존 문자열의 오른쪽에 공백을 채워 새로운 문자열을 만들고 싶다.

string PadRight(int totalWidth)

string str = "Super Star";
str = str.PadRight(15);
Console.WriteLine(str);

Super Star    

(참고: Star의 오른쪽에 공백이 5개)

문자열의 왼쪽에 특정 문자로 채우고 싶다.

string PadLeft(

    int totalWidth,

    char paddingChar)

string str = "Super Star";
str = str.PadLeft(15, '.');
Console.WriteLine(str);

.....Super Star

문자열의 오른쪽에 특정 문자로 채우고 싶다.

string PadRight(

    int totalWidth,

    char paddingChar)

string str = "Super Star";
str = str.PadRight(15, '.');
Console.WriteLine(str);

Super Star.....

문자열의 일부를 다른 것으로 대체하고 싶다.

string Replace(

    char oldChar,

    char newChar)

string phoneNumber = "010-2345-6789";
phoneNumber = phoneNumber.Replace('-', ' ');
Console.WriteLine(phoneNumber);

010 2345 6789

string Replace(

    string oldValue,

    string newValue)

string phoneNumber = "010-2345-6789";
phoneNumber = phoneNumber.Replace("010", "070");
Console.WriteLine(phoneNumber);

070-2345-6789

검색하고자 하는 내용이 문자열에 있다면, 최초의 위치가 어디인지 알고 싶다.

int IndexOf(char value)

string sentence = "What a wonderful world!";

int index = sentence.IndexOf('a');

Console.WriteLine(index);

2

int IndexOf(string value)

string sentence = "What a wonderful world!";

int index = sentence.IndexOf("won");

Console.WriteLine(index);

7

int IndexOf(

    char value,

    int startIndex)

string sentence = "What a wonderful world!";

int index = sentence.IndexOf('a', 3);

Console.WriteLine(index);

5

int IndexOf(

    string value,

    int startIndex)

string sentence = "What a wonderful world!";

int index = sentence.IndexOf("wo", 10);

Console.WriteLine(index);

17

int IndexOf(

    char value,

    int startIndex,

    int count)

string sentence = "What a wonderful world!";
int index = sentence.IndexOf('a', 3, 10);
Console.WriteLine(index);

5

int IndexOf(

    string value,

    int startIndex,

    int count)

string sentence

    = "One little, two little, three little indians";
int index = sentence.IndexOf("little", 7, 15);
Console.WriteLine(index);

16

두 문자열의 내용이 같은지 알고 싶다. 다를 경우 사전 순서로 어떤 것이 먼저인지 알고 싶다.

int compareTo(string strB)

string name = "Park";
Console.WriteLine(name.CompareTo("Lee"));
Console.WriteLine(name.CompareTo("Park"));
Console.WriteLine(name.CompareTo("Song"));

1

0

-1

 

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

c# Window Form Application Idle 루프문 사용자설정  (0) 2013.04.30
C# WindowForm Process종료  (0) 2013.04.30
C# thread에 파라미터 전달하기  (0) 2013.04.24
C#으로 이미지파일을 DB에 넣는방법  (0) 2013.04.24
다중 쓰레드  (0) 2013.04.24