나 개발자 진짜 되냐?

[ C# 기본 문법 26 ] StringBuilder 너.. 좋은 친구구나? 본문

C# 을 맛보았어요!/문법정리를 해보았어요!

[ C# 기본 문법 26 ] StringBuilder 너.. 좋은 친구구나?

Snow Rabbit 2024. 10. 8. 20:14

 

오늘은!

코테하며 알게 된 친구에 대해 이야기해볼 예정이다.

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가 된다!

 

나도 

끝!