[ C# 기본 문법 26 ] StringBuilder 너.. 좋은 친구구나?
오늘은!
코테하며 알게 된 친구에 대해 이야기해볼 예정이다.
StringBuilder
이다.
이 친구는 누구냐!
문자열 string은 원래
변경이 불가능 한 친구이다.
그래서 변경을 해주려면 또 string로
받아야하고 받아야 하고 받아야 하고
받아야 하고 받아야하고 받아야하고
받아야하고 받아야하고 받아야하고
터질 거 같은 메모리 할당으로 문제가 생길 수 있어서
문자열을 반복적으로 수정하거나
뭐 자르고 변형할 수 있는
도구
바로 스트링빌더이다.
스트링빌더는 class라서
1. using문을 써줘야 한다.
맨 위에
using System.Text;
추가
2. new로 선언해주어야 한다.
StringBuilder myStringBuilder = new StringBuilder();
이렇게 해주면 되는데
약간 배열이랑 비슷하게 사용되는 거 같다.
사용할 수 있는 메서드는
. Append
문자열 끝에 정보 추가
문자열. Append("ㅇㅅㅇ")
해주어서
""값이 문자열 맨 뒤에 추가가 된다.
그 이외에도 사용법이 괴이이이이이이잉장히 많다.
. AppendFormat
문자열에 전달된 서식 지정자를 서식 있는 택스트로 바꾼다.
문자열. AppendFormat("ㅇㅅㅇ")
그냥 간단하게
format을 쓰면
문자열이 계속 붙어지긴 하는데
복합 형식으로
뭐 스트링도 인트도 뭐 한꺼번에 다
스트링으로 바꿔줘서 저장된다고 보면 된다.
그냥 append의 업그레이드버전이라고 생각하자!
. Insert
지정된 인덱스에 문자열 또는 개체 삽입
문자열. Insert(8, "ㅇㅅㅇ")
삽입은 중간에 끼워 넣어야 하기 때문에,
몇 번째 위치에 넣어줄지 꼭! 적어주어야 한다
index값이 들어가야 한다는 것!
. Remove
지정된 수의 문자 제거
삽입이랑 비슷한데 약간 다르다.
문자열. Remove(2,8)
이 친구는 앞에 2가 2번째부터
8개 잘라버리겠다!
라는 의미이다.
. Replace
지정된 문자 또는 문자열을 다른 문자열로 모두 바꿔준다.
이 친구는 특징이
인덱스를 넣을 순 없다.
즉 몇 번째의 값을 치환해 줄 수 없다.
이런 문자열을 저런 문자열로 바꿔주겠다만 된다.
문자열. Replace("ㅇㅡㅇ", "ㅇㅅㅇ")
이렇게 해주면
ㅇ 쯩을
ㅇㅅㅇ으로 바꿔준다는 의미가 된다.
한 글자도 가능하다
문자열. Replace("ㅡ", "ㅇㅅㅇ")
아!!
잊지 말아야 할 것
아까 배열이랑 비슷하다고 했다
기억날지 모르겠지만...ㅎ
그래서 이렇게 자르고 추가하고 삭제하고
이런 친구들은 다 한 string에 있는 것이 아니다.
그렇기 때문에
마지막에
myStringBuilder.ToString()
을 해주어서
무조건! 모든 문자열을 string으로 바꾸어 주어야
비로소 다 합쳐진 하나의 string가 된다!
나도
끝!