
문자열 복습
내가 실제로 많이 사용할 것 같은 것만 추림
문자열 안에 변수를 넣는 방식
(이건 자주 사용하니 자세한 설명은 생략한다)
Console.WriteLine($"이름: {name}, 나이: {age}");
공백 제거, 대소문자 처리
ex)
string testString = " Hello ";
// testString기준으로 왼쪽부터 오른쪽 순으로 적용
Console.WriteLine(testString.ToLower().Trim());
// 대문자로 변환 후 공백 제거, ToUpper()와 Trim() 따로 써도 된다.
Console.WriteLine(testString.ToUpper().Trim());
출력
hello
HELLO
해당 문자 포함 여부 확인
ex)
string testString = "오늘 점심은 돈까스입니다.";
//"돈"만 입력해도 True로 나옴
Console.WriteLine(testString.Contains("돈까스"));
출력
True
특정 문자의 위치 찾기
ex)
이메일에서 아이디 / 도메인 분리
파일 확장자 구분
string testString = "asdf123@gmail.com";
int atIndex = testString.IndexOf("@"); // "@" 만 추출
string id = testString.Substring(0, atIndex); // 0번째부터 "@"까지 추출
// "a" 왼쪽 부분 커서부터 0
Console.WriteLine(id);
출력
asdf123
문자열 나누기
ex)
// , 포도 일 경우포도 앞 공백까지 배열에 포함
string testString = "사과,바나나,포도";
string[] fruits = testString.Split(','); // ',' 기준으로 배열을 나눔
foreach (string fruit in fruits) // 배열 순차대로 출력
{
Console.WriteLine(fruit);
}
출력
사과
바나나
포도
● CSV: Comma-Separated Values의 약자로,
쉼표로 구분된 값을 의미하는 단순한 텍스트 데이터 형식
CSV 파일 예시)
이름,나이,도시
앨리스,30,뉴욕
밥,25,런던
찰리,35,서울
문자열을 부분만 추출
ex)
전화번호 / 이름 / ID 등 일부 문자열만 추출
string testString = "가나다(010-1234-5678)";
// 커서 기준으로 0번째부터 3번째 글자까지
string name = testString.Substring(0, 3);
Console.WriteLine(name);
출력
가나다
많은 문자열을 효율적으로 조립
ex)
// 안좋은 방법, 출력하는데 오래 걸림
string result = "";
for (int i = 0; i < 50000; i++)
{
result += "로그 메시지 " + i + "\n";
}
Console.WriteLine(result);
// 좋은법, 출력 속도가 훨씬 빠름
// 똑같은 문자열를 많이 사용할 때 이걸 사용하자
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.AppendLine("로그 메시지 " + i);
}
Console.WriteLine(sb.ToString());
문자열 시작/끝 확인 (조건으로 사용할 것 같음)
ex)
string testString = "report.pdf";
//"t"만 입력해도 true
Console.WriteLine(testString.StartsWith("report"));
//"f"만 입력해도 true
Console.WriteLine(testString.EndsWith(".pdf"));
출력
True
True
문자열 길이 및 삽입/삭제
ex)
string testString = "Hello";
Console.WriteLine(testString.Length); // 문자열 길이
Console.WriteLine(testString.Insert(1, "@@")); // 1번째 커서 위치에 "@@"삽입
Console.WriteLine(testString.Remove(2)); // 2번째 글자 이후는 삭제
출력
5
H@@ello
He
문자열 비교
ex)
string testString = "Hello";
string testString2 = "hello";
//testString과 testString2가 같은가?
Console.WriteLine(testString.Equals(testString2 ));
// 대소문자 상관없이 testString과 testString2이 같은가?
Console.WriteLine(testString.Equals(testString2 ,
StringComparison.OrdinalIgnoreCase));
//"apple"과 "banana"가 같은가? 맞으면 0, 아니면 -1
Console.WriteLine(string.Compare("apple", "banana"));
출력
False
True
-1