문자열 검색
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);
}
}
문자열의 서식화
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 |
오전/오후 |
|
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));
}
문자열 보간