반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발꿈나무

[C# 교과서] 8. C# 활용(2) - 문자열 다루기 본문

C# 기초

[C# 교과서] 8. C# 활용(2) - 문자열 다루기

HYOKYE0NG 2022. 1. 14. 16:05
반응형
문자열 다루기

 

  • 닷넷 프레임워크에 내장된 클래스 중에서 문자열 관련 클래스(String, StringBuilder)는 문자열 길이 변환, 문자열 공백 제거, 대·소문자 변환 등 기능을 하는 메서드 제공
  • C#의 문자열은 유니코드 문자열이기에 다국어를 지원하고, 문자열 관련 모든 기능도 다국어 제대로 처리

 

문자열 다루기

  • Length: 문자열 길이 값 변환
  • ToUpper(): 문자열을 모두 대문자로 변환
  • ToLower(): 문자열을 모두 소문자로 변환
  • Trim(): 문자열 양쪽 공백을 잘라 냄
  • Replace(원본 문자열, 대상 문자열): 원본 문자열을 대상 문자열로 변경
  • Substring(문자열인덱스, 길이): 지정된 문자열 인덱스부터 길이만큼 반환

 

문자열 묶는 표현 방법

var firstName = "승수";
var lastName = "백";
var fullName = "";

//1. 더하기 연산자 사용
fullName = lastName + firstName;

//2. string.Format() 사용
fullName = string.Format(lastName, firstName);

//3. 문자열 보간법 사용
fullName = ${lastName){firstName};

 

문자열 비교 방법

C#에서 == 연산자를 사용한 문자열 비교는 대·소문자를 구분한다. 대·소문자를 구분하지 않고 문자열을 비교하려면 문자열 변수의 Equlas() 메서드에 추가 옵션인 StringComparison 열거형의 OrdinalIgnoreCase 값을 사용해야 한다.

string userName1 = "RedPlus";
string userName2 = "redPlus";

//1. ==연산자 사용
if(userName1.ToLower() == userName2.ToLower())
{
	Console.WriteLine("[1] 같습니다.");
}

//2. string.Equals() 메서드 사용
if(string.Equals(userName1, userName2, StringComparison.InvariantCultureIgnoreCase))
{
	Console.WriteLine("[2] 같습니다.");
}

if(userName1.Equlas(userName2, StringComparison.OrdinalIgnoreCase))
{
	Console.WriteLine("[3] 같습니다.");
}

 

ToCharArray() 메서드로 문자열은 문자 배열로 변환하기

string s = "Hello";
char[] ch = s.ToCharArray(); //문자열을 문자 배열로 변환

 

Split() 메서드로 문자열 분리하기

string src = "Red, Green, Blue";
string[] colors = src.Split(','); //,를 기준으로 분리하여 문자열 배열 만들기
Console.WriteLine(colors);
//result: string[3] {"Red", "Green", "Blue"}

 

문자열 처리 관련 주요 API 살펴보기

  • 문자열 변수는 초기화하지 않으면 기본적으로 null 값으로 초기화
  • 문자열.Length(): 문자열의 길이 반환
  • 문자열[n]: 문자열은 문자 배열을 의미하므로 n번짜 문자 반환
  • 문자열.ToUpper(), 문자열.ToLower(): 각각 대문자, 소문자로 변경
  • 문자열.TrimStart(), 문자열.TrimEnd(): 각각 시작점, 끝점의 공백 제거
  • 문자열.IndexOf('문자'): 특정 문자의 위치(인덱스) 반환
  • 문자열.Remove(a, b): a번째부터 b개만큼의 문자열 제거
  • 문자열.Insert(a, ""): a번째에 특정 문자열(문자) 삽입
  • 문자열.StartWith("a"): 문자열이 특정 문자열(문자)로 시작하는지 bool 반환
  • 문자열.PadLeft(n, "a"), 문자열.PadRight(n, "a"): 각각 특정 문자를 왼쪽 또는 오른쪽에 채움

 

StringBuilder 클래스를 사용하여 문자열 연결하기

많은 양의 문자열을 반복해서 묶는 잡업이 팰요할 때 StringBuilder 클래스를 사용하면 효율적

using System.Text;

StringBuilder sb = new StringBuilder(); //StringBuilder 클래스의 인스턴스 생성

sb.Append("first\n"); //Append() 메서드로 문자열 추가
sb.Append("second\n");
sb.Append("third\n");

Console.WriteLine(sb);

/*
<result>
[first
second
third
]
*/
반응형
Comments