문자열 검색

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 연도
  • yy : 두 자릿수 연도(23-10-19 17:42:22)
    - yyyy : 네 자릿수 연도 (2023-10-19 17:42:22)
M
  • M : 한 자릿수 월(23-1-19 17:42:22)
    - MM : 두 자릿수 월(23-01-19 17:42:22)
d
  • d : 한 자릿수 일(23-10-1 17:42:22)
    - dd : 두 자릿수 일(23-10-01 17:42:22)
h 시(12)
  • h : 한 자릿수 시(23-10-19 5:42:22)
    - hh : 두 자릿수 시(23-10-19 05:42:22)
H 시(24)
  • H : 한 자릿수 시(2023-10-19 17:42:22)
    - HH : 두 자릿수 시(2023-10-19 08:42:22)
m
  • m : 한 자릿수 초(2023-10-19 08:4:02)
    - mm : 두 자릿수 초(2023-10-19 08:04:02)
s
  • s : 한 자릿수 초(2023-10-19 08:44:2)
    - ss : 두 자릿수 초(2023-10-19 08:44:02)
tt 오전/오후
  • tt : 오전/오후
ddd 요일
  • ddd : 약식요일 (목)
    - dddd : 전체요일 (목요일)
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));  
}


문자열 보간