String 형식의 문자열과 C#에서 기본으로 제공하는 기능 함수를 살펴본다.
- 문자열 탐색
- IndexOf() : 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다.
- LastIndexOf() : 끝에서 부터 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다.
- StartsWith() : 지정된 문자열로 시작하는 지 bool로 판별한다.
- EndsWith() : 지정되 문자열로 끝나는 지 bool로 판별한다.
- Contains() : 지정된 문자열을 포함하는 지 bool로 판별한다.
- Replace(string src, string dst) : 지정된 문자열을 찾아서 모두 다른 문자열로 치환한다.
- 문자열 변형
- ToLower() : 모두 소문자로
- ToUpper() : 모두 대문자로
- Insert(int startIdx, string value) : 지정된 위치에 삽입된 새문자열을 반환
- Remove(int startIdx) / Remove(int startIdx, int count) : 지정된 위치부터 일정 길이를 삭제한 문자열을 반환
- Trim() : 앞 뒤로 공백을 모두 삭제
- TrimStart() : 앞에 있는 공백을 모두 삭제
- TrimEnd() : 뒤에 있는 공백을 모두 삭제
- 문자열 분할
- Split() : 지정된 문자를 기준으로 문자열을 분리하여 얻은 문자열 배열을 반환
- SubString() : 지정된 위치로 부터 일정 길이를 지정한 부분 문자열을 반환
namespace HelloWorld
{
class MainApp
{
static void Main(string[] args)
{
string greeting = "Good Morning";
WriteLine(greeting);
WriteLine();
// IndexOf()
WriteLine("IndexOf 'Good' : {0}", greeting.IndexOf("Good"));
// Contains()
WriteLine("Contains 'Morning' : {0}", greeting.Contains("Morning"));
// Replace()
WriteLine("Replaced Morning with Evening : {0}", greeting.Replace("Morning", "Evening"));
// Insert()
WriteLine("Inserted At Last 'Everyone' : {0}", greeting.Insert(greeting.Length, " Everyone"));
// Remove()
WriteLine("Removed 'Good' : {0}", greeting.Remove(0, 4));
// Split()
WriteLine("Split By Blank' '");
string[] arr = greeting.Split(new string[] {" "}, StringSplitOptions.None);
foreach(string element in arr)
{
WriteLine("{0}", element);
}
Read();
}
}
}
- 문자열 서식 맞추기
Console.WriteLine()과 string.Format()에서 주로 사용되는 서식을 이용한 문자 만들기
{첨자, 맞춤 : 서식}
- 첨자 : 매개 변수 번호
- 맞춤 : -(왼쪽)/+(오른쪽) 맞춤
- 서식 : D(10진수), X(16진수), N(,로 묶어서 표현), F(고정 소수점), E(지수)
- 날짜 시간의 출력 DatmeTime (yyyy-MM-dd / HH:mm:ss / tt / ddd)
ex) 서식 예제
using System;
using System.Globalization;
using static System.Console;
namespace HelloWorld
{
class MainApp
{
static void Main(string[] args)
{
string fmt = "{0,-20}{1,-15}{2,30}";
WriteLine(fmt, "Publisher", "Author", "Title");
WriteLine(fmt, "Marvel", "Stan Lee", "Iron Man");
WriteLine(fmt, "Hanbit", "Park", "This is C#");
// D: 10진수
WriteLine("10진수: {0:D}", 123);
WriteLine("10진수 : {0:D5}", 1234567);
// X: 16진수
WriteLine("16진수 : 0x{0:X}", 0xFFFF);
// N : 숫자
WriteLine("금액 : {0:N3}원", 1000000000);
// F : 고정 소수점
WriteLine("고정 소수점: {0:F2}", 123.4567);
// E: 공학용
WriteLine("공학용 : {0:E}", 123.456);
WriteLine();
DateTime datetime = new DateTime(2021, 10, 2, 14, 11, 30); // 년/월/일/시/분/초
// 12시간 형식
WriteLine("12시간 형식 : {0:yyyy-MM-dd tt hh:mm:ss (ddd)}", datetime);
// 24시간 형식
WriteLine("24시간 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", datetime);
WriteLine();
// 지역에 따라 다른 형식을 사용
CultureInfo koKR = new CultureInfo("ko-KR");
WriteLine(datetime.ToString("ko-KR 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", koKR));
CultureInfo enUS = new CultureInfo("en-US");
WriteLine(datetime.ToString("en-US 형식 : {0:yyyy-MM-dd tt HH:mm:ss (ddd)}", enUS));
Read();
}
}
}
- 문자열 보간
C# 6.0에서부터 사용할 수 있는 기능으로 $으로 시작하여 {표현값, 맞춤 :서식}의 묶음으로 문자열을 표현
$"{문자열 1},{문자열 2},{...}"의 표현으로 문자열을 합친다.
namespace HelloWorld
{
class MainApp
{
static void Main(string[] args)
{
WriteLine("{0},{1}", 123, "최강한화");
WriteLine($"{123},{"최강한화"}");
WriteLine("{0, -10:D5}", 123);
WriteLine($"{123,-10:D5}");
int n = 123;
string s = "최강한화";
WriteLine("{0},{1}", n, s);
WriteLine($"{n},{s}");
WriteLine("{0},{1}", n > 100 ? "big" : "small", s);
WriteLine($"{ (n > 100 ? "big" : "small")},{s}");
Read();
}
}
}