보간
문자열 보간이란 서식화된 문자열을 편리하게 다루기 위해서
C# 6.0에서 새로 도입된 기능
이 문자열 보간을 사용하기 위해서는 문자열 앞에 $ 기호를 붙임
int a = 1;
int b = 2;
Console.WriteLine(" {0}, {1} ", a, b );
Console.WriteLine($" {a}, {b} " ); //문자열 보간
Console.WriteLine(" {0, -6} {1} ", a, b);
Console.WriteLine($"{a, -6} {b} "); //문자열 보간
Console.WriteLine(" {0} ", "안녕하세요");
Console.WriteLine($"{"안녕하세요"}"); //문자열 보간
Console.WriteLine(" {0} ", a > b? "큼" : "작음");
Console.WriteLine($"{( a > b? "큼" : "작음" )}" ); //문자열 보간
모두 똑같이 출력
서식
C#에는 C#만의 서식이 존재함.
지금까지 사용한 {0}에 대해서 설명하자면 이건 서식 항목이라 부름.
{ 첨자, 맞춤 : 서식문자열 }
이 서식 항목을 사용하는데 앞서 문자열의 구성을 알아야함.
이를 도와줄 새로운 메소드 Format 메소드를 소개
Format 메소드는 이 때 까지 사용하던 Console.WriteLine 구성과 비슷함.
그 이유는 이 메소드는 내부적으로 Format 메소드를 사용하기 때문
string string.Format( string format, object arg0 )
간단하게 Format의 사용법을 알아보겠습니다.
string str = string.format( "{0}DEF", "ABC");
Console.WriteLine( "{0}", str);
출력 결과 : ABCDEF
간단하게 문자열을 하나 만드는 것임.
그리고 맞춤 서식에 대해서도 알아보겠습니다.
string str1 = "{0, -6}{1, 0}";
Console.WriteLine(str1, "ABC", "DEF");
string str2 = "{0}{1, 6}";
Console.WriteLine(str2, "ABC", "DEF");
출력 결과 : str1 = ABC DEF
출력 결과 : str2 = ABC DEF
+의 맞춤 서식은 문자열의 앞칸을 채움.
-의 맞춤 서식은 문자열의 뒷칸을 채움.
맞춤 서식은 한가지 특징이 있음.
기존 문자열을 초과해야지 그 만큼 빈칸이 채워짐.
즉, ABC라는 문자열은 총 3칸을 차지하는데 이 상태에서 3칸이라는 빈칸을 만드려면 또 3칸이 필요함.
그래서 총 6칸이 필요
위 의 출력 결과를 설명해보자면
str1 은 총 6칸의 자리 중 ABC가 앞에 3자리를 차지하고 뒤로 나머지 3칸을 빈공간이 차지함. + DEF.
str2 는 ABC + 총 6칸의 자리중 앞에 3칸을 빈공간이 차지하고, 뒤에 나머지 3칸을 DEF가 차지함
서식 지정자
|
대상 서식
|
설명
|
D
|
10진수
|
10진수로 서식화
|
X
|
16진수
|
16진수로 서식화
|
N
|
, 자릿수
|
수를 콤마로 구분
|
F
|
고정소수점
|
수를 고정소수점 서식화
|
E
|
지수
|
지수 표기로 서식화
|
y
|
연도
|
yy : 두 자릿수 연도 (18)
yyyy : 네 자릿수 연도 (2018) |
M
|
월
|
M : 한 자릿수 월 (1)
MM : 두 자릿수 일월 (01) |
d
|
일
|
d : 한 자릿수 일 (8)
dd : 두 자릿수 일 (08) |
h
|
시(1~12)
|
h : 한 자릿수 시 (9)
hh : 두 자릿수 시 (09) |
H
|
시(1~23)
|
h : 한 자릿수 시
hh : 두 자릿수 시 |
m
|
분
|
m : 한 자릿수 분 (3)
mm : 한 자릿수 분 (03) |
s
|
초
|
s : 한 자릿수 초 (7)
ss : 두 자릿수 초 (07) |
tt
|
오전/오후
|
tt : 오전/오후 11:00:00 → 오전
13:00:00 → 오후 |
ddd
|
요일
|
ddd : 약식 요일 (토)
dddd : 전체 요일 (토요일) |
엑셀을 사용할 때 쓰는 것과 같더나, 비슷함 MS사에서 만든거라 그런 듯 싶음
변형
메소드
|
요약 : C++ 에서의 함수 개념
|
|
문자열.ToLower()
|
문자열의 모든 대문자를 소문자로 바꾸고 반환
|
|
문자열.ToUpper()
|
문자열의 모든 소문자를 대문자로 바꾸고 반환
|
|
문자열.Insert()
|
문자열의 지정 위치에 문자열을 삽입 후 반환
|
|
문자열.Remove()
|
문자열의 지정 위치 부터 지정된 수 까지 삭제 후 반환
|
|
문자열.Trim()
|
문자열의 앞/뒤에 있는 공백 삭제 후 반환
|
|
문자열.TrimStart()
|
문자열의 앞에 있는 공백 삭제 후 반환
|
|
문자열.TrimEnd()
|
문자열의 뒤에 있는 공백 삭제 후 반환
|
ToLower()
Console.WriteLine("ToLower {0}", "ABC".ToLower());
출력결과 : ToLower abc
ToUpper()
Console.WriteLine("ToLower {0}", "abc".ToUpper());
출력결과 : ToLower ABC
Insert()
string str = "ABC";
Console.WriteLine("Insert {0}", str.Insert(3, "def"));
출력결과 : ABCdef
원하는 자리 부터 문자열을 삽입하는 기능
주의사항 ABC는 012 다음은 공간이 없음. 만약 3부터가 아닌 4 부터 삽입하라고 하면
3 자리에 들어갈 문자를 컴퓨터가 알 수 없어서 오류를 발생시킴
Remove()
string str = "ABC";
Console.WriteLine("Remove {0}", str.Remove(2, 1));
출력결과 : AB
지정된 위치부터 입력한 수만큼 문자를 삭제함
주의 3부터는 문자가 없음. 만약 문자가 없는 위치를 입력하거나,
없애야 할 문자가 문자가 있는 공간을 초과해버리면 오류가 발생
Trim, TrimStart, TrimEnd
string str = " ABC ";
Console.WriteLine(" l{0}l", str.Trim());
출력결과 : lABCl
Console.WriteLine(" l{0}l", str.TrimStart());
출력결과 : lABC l
Console.WriteLine(" l{0}l", str.TrimEnd());
출력결과 : l ABCl
찾기
문자열.IndexOf()
|
문자열 내에서 찾는 문자 혹은 문자열 위치 확인
|
|
문자열.LastIndexOf()
|
문자열 내에서 찾는 문자 혹은 문자열 위치 맨 뒤부터 확인
|
|
문자열.StartWith()
|
문자열 내에서 지정된 문자열로 시작하는지 확인
|
|
문자열.EndsWith()
|
문자열 내에서 지정된 문자열로 끝나는지 확인
|
|
문자열.Contains()
|
문자열 내에서 지정된 문자열을 포함하는지 확인
|
|
문자열.Replace()
|
문자열 내에서 찾아서 해당 문자열 변경
|
IndexOf
string str = "ABC";
Console.WriteLine("{0}", str.IndexOf("ABC");
Console.WriteLine("{0}", str.IndexOf("B");
출력결과 : 0
출력결과 : 1
원하는 문자열을 입력하면 그 문자열의 시작점을 알려줌. ABC의 시작점. 0
원하는 문자를 입력하면 그 문자의 위치를 알려줌 1
LastIndexOf
string str = "ABCABC";
Console.WriteLine("{0}", str.LastIndexOf("ABC");
Console.WriteLine("{0}", str.LastIndexOf("B");
출력결과 : 3
출력결과 : 4
특징 뒤에서부터 읽는다. 만약 문자열을 입력할 경우 문자열의 첫번째 위치 A부터 읽음.
같은 문자열이 있을 경우 뒤에있는 문자열을 읽음.
StartsWith
시작점이 무엇인지 확인하는 메소드.
입력한 문자 또는 문자열이 제일 첫번쨰로 오는 문자열인지를 true, false로 알려줌
string str = "ABCABC";
Console.WriteLine("{0}", str.StartsWith("ABC");
Console.WriteLine("{0}", str.StartsWith("BC");
Console.WriteLine("{0}", str.StartsWith("A");
Console.WriteLine("{0}", str.StartsWith("B");
출력결과 : true
출력결과 : false
출력결과 : true
출력결과 : false
EndsWith
StartsWith와 반대의 메소드
문자, 문자열의 제일 끝의 문자열을 확인함
Contains
문자열이 있는지 없는지를 확인하여 true, false로 알려줌
string str = "ABC";
Console.WriteLine("{0}", str.Contains("ABC");
Console.WriteLine("{0}", str.Contains("A");
Console.WriteLine("{0}", str.Contains("D");
출력결과 : true
출력결과 : true
출력결과 : false
Replace
문자열을 변경해주는 메소드
string str = "ABC";
Console.WriteLine("{0}", str.Replace("AB", "DE");
출력결과 : DEC
'C#' 카테고리의 다른 글
C# 연산자 (0) | 2022.05.02 |
---|---|
C# 메소드 (0) | 2022.04.29 |
C# Object 자료형, 박싱과 언박싱 (0) | 2022.04.27 |
C# 형변환 (0) | 2022.04.27 |
C# 상수와 열거형 (0) | 2022.04.27 |