문자열 검색
private static void String()
{
string greeting = "Good Morning";
WriteLine(greeting);
/ IndexOf (return int)
/ 찾으려고 하는 지정된 문자 또는 문자열의위치 검색
WriteLine($"IndexOf `Good` : {greeting.IndexOf("Good")}");
WriteLine($"IndexOf `o` : {greeting.IndexOf('o')}");
/ LastIndexOf (return int)
/ 찾으려고 하는 지정된 문자 또는 문자열의 위치를 '뒤'에서부터 검색
WriteLine($"LastIndexOf 'Good' : {greeting.LastIndexOf("Good")}");
WriteLine($"LastIndexOf 'o' : {greeting.LastIndexOf('o')}");
/ StartsWith (return bool)
/ 지정된 문자열로 '시작하는' 평가
WriteLine($"StartsWith 'Good' : {greeting.StartsWith("Good")}");
WriteLine($"StartsWith 'Morning' : {greeting.StartsWith("Morning")}");
/ EndsWith (return bool)
/ 지정된 문자열로 '끝나는지' 평가
WriteLine($"EndsWith 'Good' : {greeting.EndsWith("Good")}");
WriteLine($"EndsWith 'Morning' : {greeting.EndsWith("Morning")}");
/ Contains (return bool)
/ 지정된 문자열을 '포함하는지를' 평가
WriteLine($"Contains 'Evening' : {greeting.Contains("Evening")}");
WriteLine($"Contains 'Morning' : {greeting.Contains("Morning")}");
/ Replace (return void)
/ 지정된 문자열을 다른 지정 문자열로 치환
WriteLine($"Replaced 'Morning' with 'Evening' :
{greeting.Replace("Morning", "Evening")}");
}

문자열 변형
private static void StringModify()
{
/ ToLower() (return string)
/ 모든 대분자를 소문자로 반환
WriteLine($"ToLower(): {"ABC".ToLower()}");
/ ToUpper() (return string)
/ 모든 소문자를 대문자로 반환
WriteLine($"ToUpper() : {"abc".ToUpper()}");
/ Insert() (return string)
/ 지정된 위치에 지정된 문자열이 삽입된 새 문자열을 반환
WriteLine($"Insert() : {"Happy Friday!".Insert(5, " Sunny")}");
/ Remove() (return string)
/ 지정된 위치에 지정된 위치로부터 지정된 수만큼 삭제된 새 문자열을 반환
WriteLine($"Remove() : {"I Don't Love You".Remove(2,6)}");
/ Trim() (return string)
/ Trim => 앞 / 뒤 모든 공백 제거
/ TrimStart => 앞 공백 제거
/ TrimEnd => 뒤 공백 제거
WriteLine($"Trim() : '{" No Space ".Trim()}'");
WriteLine($"TrimStart() : '{" No Space ".TrimStart()}'");
WriteLine($"TrimEnd() : '{" No Space ".TrimEnd()}'");
}

문자열 분할
private static void StringSlice()
{
string greeting = "Good morning";
/ Substring(int startIndex, int length)
/ 현재 지정된 문자열의 위치로(startIndex)부터 지정된 수(length)만큼의 문자열을 반환
/ length 생략시 끝까지 반환
WriteLine(greeting.Substring(0,5)); / Good
WriteLine(greeting.Substring(5)); / morning
WriteLine();
/ Slice (object separator)
/ separator로 지정된 문자를 기준으로 현재 문자열을 분리한 문자열을 반환
string[] arr = greeting.Split(new []{" "}, StringSplitOptions.None);
WriteLine($"Word Count : {arr.Length}");
foreach (var element in arr)
{
WriteLine(element);
}
}

문자열의 서식화
Format()
서식항목 (format Item)

Console.WriteLine("Total : {0,-7:D}", 123) / 첨자 0, 맞춤 -7, 서식 문자열 D
왼쪽/ 오른쪽 맞춤
string result = string.Format("{0,-10}DEF", "ABC");
result : "ABC DEF"
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | B | C | D | E | F | |||||||
string result = string.Format("{0,10}DEF", "ABC");
result : " ABCDEF"
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | B | C | D | E | ||||||||
public static void FormatSort()
{
string fmt = "{0,-20}{1,-15}{2,30}";
WriteLine(fmt, "Publisher", "Author", "Title");
WriteLine(fmt, "Marvel", "Stan Lee", "Iron Man");
WriteLine(fmt, "Hanbit", "Daniel", "This is C#");
WriteLine(fmt, "Prentice Hall","K&R", "The C Programming Language");
}

숫자 서식화

서식 지정자
|서식 지정자|대상 서식|설명| |:–|:–|:–| |D|10진수|입력된 수를 10진수로 서식화| |X|16진수|입력된 수를 16진구로 서식화| |N|콤마(,)로 묶어 표현한 수|입력된 수를 콤마로 구분하여 출력| |F|고정 소수점|입력된 수를 고정 소수점 형식으로 서식화| |E|지수|입력된 수를 지수 표기로 서식화|
public static void FormatSpecifier()
{
// D
WriteLine("{0:D}", 255);
WriteLine("{0:D}", 0xFF);
// X
WriteLine("{0:X}", 255);
WriteLine("{0:X}", 0xff);
// N
WriteLine("{0:N}", 123456789);
// F
WriteLine("고정 소수점: {0:F}", 123.45);
// E
WriteLine("공학: {0:E}", 123.456789);
}

자릿수 지정자 (Precision Specifier)
public static void PrecisionSpecifier()
{
/ D : 10 진수
WriteLine("D: {0:D}", 123);
WriteLine("D5: {0:D5}", 123);
/ X : 16진수
WriteLine("X : 0x{0:X}", 0xFF1234);
WriteLine("X8 : 0x{0:X8}", 0xFF1234);
/ N : 숫자
WriteLine("N: {0:N}", 123456789);
WriteLine("N0: {0:N0}", 123456789);
/ F : 고정 소수점
WriteLine("F: {0:F}", 123.45);
WriteLine("F5: {0:F5}", 123.456);
/ E : 공학용
WriteLine("E : {0:E}", 123.456789);
}

날짜 및 시간 서식화
| 서식 지정자 | 대상 서식 | 설명 |
|---|---|---|
| y | 연도 |
|
| M | 월 |
|
| d | 일 |
|
| h | 시(12) |
|
| H | 시(24) |
|
| m | 분 |
|
| s | 초 |
|
| tt | 오전/오후 |
|
| ddd | 요일 |
|
DateTime dt = new DateTime(2023,10,19,17,55,22);
/ 12시간 형식
WriteLine("12시간 형식 : {0:yyyy-MM-dd tt hh:mm:ss (ddd)}", dt);
/ 24시간 형식
WriteLine("24시간 형식 : {0:yyyy-MM-dd tt HH:mm:ss (dddd)}", dt);

CultureInfo (문화권 정보)
public static void DateCultureInfo()
{
DateTime dt = new DateTime(2023,10,19,17,55,22);
CultureInfo ciKo = new CultureInfo("ko-KR");
WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", ciKo));
CultureInfo ciEn = new CultureInfo("en-US");
WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", ciEn));
}

문자열 보간
