C#,Delphi,Oracle,MSSQL 개발자블로그

[Visual C#] 문자열의 내용을 검색하거나 조작하는 방법 본문

Programming/C#

[Visual C#] 문자열의 내용을 검색하거나 조작하는 방법

19760323 2017. 6. 22. 18:30

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

 

 

 

Comments