[C#] 문자열(string)

omniAI·2022년 8월 29일

C#

목록 보기
14/14
post-thumbnail

💁‍♂️ 부분 문자열 찾기

  • Contains
string name = "Harry Potter";
...
if(name.Contains("Harry"))
{
	Console.WriteLine("True");
}

🎲출 력🎲
True


Contains(string) 👉 호출한 문자열에 인수로 넘긴 문자열이 부분 문자열로 존재한다면 True, 아니면 False 리턴.


인수로 넘긴 "Harry"는 name 문자열에 부분 문자열로 존재하기 때문에 True 리턴.

  • IndexOf
string name = "Harry Potter"
...
Console.WriteLine(name.IndexOf('P');
Console.WriteLine(name.IndexOf('Z');

🎲출 력🎲
6
-1



IndexOf(char) 👉 호출한 문자열에 인수로 넘긴 문자가 부분 문자열로 존재 한다면, 해당 문자가 있는 위치인 인덱스를 리턴하고 존재하지 않는다면 -1을 리턴한다.

💁‍♂️ 변형

  • 덧붙이기 : + 연산자
string name = "Harry Potter";
name = name + " Junior";
...
Console.WriteLine(name));

🎲출 력🎲
Harry Potter Junior

  • 소문자, 대문자로 변형 : ToLower, ToUpper
string name "Harry Potter"
...
Console.WriteLine(name.ToLower());
Console.WriteLine(name.ToUpper());

🎲출 력🎲
harry potter
HARRY POTTER


  • 특정 문자 바꾸기 : Replace
string name = "Harry Potter"
string newName = name.Replace('r', 'l');
Console.WriteLine(newName);

🎲출 력🎲
hally pottel


Replace(char, char) 👉 호출한 문자열에 첫 번째 인수 문자에 해당하는 부분들을 전부 두 번째 인수로 부꾼다.
name 문자열의 모든 r부분이 l로 바뀌었다.

💁‍♂️ 분할

  • Split
string name = "Harry Potter";
string[] names = name.Split(new char[] { ' ' }); // 배열의 원소인 ' ' 공백 문자를 기준으로 분할한 문자열들을 string[] 배열로 리턴한다.
...
for(int i = 0; i < names.Length; i++)
{
	Console.WriteLine(names[i]);
}

🎲출 력🎲
Harry
Potter



Split 👉 인수로 넘긴 구분자를 기준으로, 호출한 문자열을 분할하여 이를 string[] 배열로 리턴한다.

  • Split(char) : 인수로 넘긴 char 문자를 기준으로 구분하고 분할하여 string[] 배열로 리턴한다.
string name = "Harry Potter";
string[] names = name.Split(' ');
...
for(int i = 0; i < names.Length; i++)
{
	Console.WriteLine(names[i]);
}

🎲출 력🎲
Harry
Potter


  • Split(char 배열) : 인수로 넘긴 char 배열의 원소들을 기준으로 구분하고 분할하여 string[] 배열로 리턴한다.
string text = "one\ttwo three:four,five six seven";
string[] words = text.Split(new char[] { ' ', ',', '.', ':', '\t' });
...
for(int i = 0; i < words.Length; i++)
{
	Console.WriteLine(words[i]);
}

🎲출 력🎲
one
two
three
four
five
six
seven


  • Split(string) : 인수로 넘긴 string 문자열을 기준으로 구분하고 분할하여 string[] 배열로 리턴한다.
string text = "Harry Potter";
...
string[] words = text.Split("rry");
...
for(int i = 0; i < words.Length; i++)
{
	Console.WriteLine(words[i]);
}

🎲출 력🎲
Ha
Potter


  • Split(string 배열, StringSplitOptions) : 인수로 넘긴 string 문자열 배열의 원소들을 기준으로 구분하고 구분하여 string[] 배열로 리턴한다. 단, string 배열을 인수로 넘길 때는 두 번째 인수가 꼭 필요하다. 두 번째 인수를 포함하지 않으면 컴파일 에러가 발생한다.
    • 두 번째 인수
      • StringSplitOptions.None
        • 리턴 값에 빈 문자열이 포함됨
      • StringSplitOptions.RemoveEmptyEntries
        • 리턴 값에 빈 문자열이 포함되지 않음
string text = "one<<two.....three<four";
string[] words = text.Split(new string[] { "<<", "..." }, System.StringSplitOptions.RemoveEmptyEntries);
...
for(int i = 0; i < words.Length; i++)
{
	Console.WriteLine(words[i]).
}

🎲출 력🎲
one
two
three<four


  • Substring
string name = "Harry Potter";
Console.WriteLine(name.Substring(5));

🎲출 력🎲
Potter


Substring(int) 👉 호출한 문자열의 인수에 해당하는 인덱스부터 문자열 끝까지를 리턴한다.

string name = "Harry Potter";
Console.WriteLine(name.Substring(5, 4));

🎲출 력🎲
Pott


Substring(int, int) 👉 호출한 문자열의 첫 번째 인수에 해당하는 인덱스부터 두 번째 인수 길이만큼 리턴한다.

💁‍♂️ 문자열 포맷

string.Format
C#에서는 형식 문자열을 간단하게 인수의 순서에 따라 {0}, {1}, {2}... 으로 지정해주면 된다.

  • 첫 번째 인수가 {0}이 되고 두 번째 인수가 {1}이 되고 이런식!
int a = 10;
int b = 5;
string str = string.Format("{0} + {1} = {2}, a, b, a + b);
Console.WriteLine(str);			// "10 + 5 = 15" 출력
  • 표준 숫자 서식 문자열
    • C D E F 등등.
  • 사용자 지정 숫자 형식 문자열
    • 0 # . , %

💁‍♂️ 기타

IsNullOrEmpty
string의 static 함수로, 인수로 넘긴 문자열이 null이거나 비어있으면 true 리턴!

string name = null;
string.IsNullOrEmpty(name);		// true 리턴
profile
킵러닝

0개의 댓글