string 처리 기본
//안좋은 string 더하는 방식 - 메모리 낭비가 심함
string str1 = "Hello";
string str2 = "World";
Console.WriteLine(str1 + " " + str2);
//좋은 string 더하는 방식
//StringBuilder builder = new StringBuilder(); //C#에서 무조건 주소만 존재한다. class는 new 안해주면 생성되지 않는다.
StringBuilder builder = new StringBuilder(10); //공간을 잡아주는것이 좋다. AppendFormat 기본 잡아준 공간을 넘어가면 다시 생성되어 공간 확보하므로 메모리 낭비가 될수 있다.
builder.AppendFormat(str1);
builder.AppendFormat(" ");
builder.AppendFormat(str2);
Console.WriteLine(builder.ToString()); //웬만한 타입은 String으로 변환 가능하다
Console.WriteLine(builder); //.ToString() 생략 가능
builder.Remove(1, 2); //1번 인덱스 부터 2개 글자 제거
Console.WriteLine(builder);
//글자 뒤에 다시 타입별로 추가
builder.AppendFormat(" {0} {1}", a, str1); //0은 int , str1은 string
Console.WriteLine(builder);
Console.WriteLine("1을 입력하시오");
string read = Console.ReadLine();
Console.WriteLine("입력 받은 것 : " + read);//안좋은 방식이지만 사람이 쓰기엔 편하다.
//비교
//if( read == "1" )
//string 값 간의 비교는 연산이 너무 많아 진다.
//숫자라고 한다면 int는 값비교가 한번에 된다.
//어지간해선 string간의 비교는 하지 말자.
//들어온 숫자 string을 int형으로 변환
int readNum = Int32.Parse(read);
//숫자가 아닌것에 대해 예외처리 안되어있다. 나중에 다시 알아 보자.
//숫자가 아니면 터진다.나중에 다시 알아 보자.
//C#은 기본적으로 Unicode이므로 특수문자에 제약이 없다.
if(readNum == 1)
{
Console.WriteLine("● 1이 입력 되었습니다.");
}
else
{
Console.WriteLine("◐ 1이 아닙니다.");
}