midas+son의 크리에이티브(creative) 이야기

string 처리 기본

공부/C#2016. 5. 4. 14:04


            //안좋은 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이 아닙니다.");

            }

'공부 > C#' 카테고리의 다른 글

배열  (0) 2016.05.04
데이터 타입  (0) 2016.05.04
[잡담]C# 공부 첫날 소감  (0) 2016.05.03
정수, 실수 출력  (0) 2016.05.03
C# 첫 경험  (0) 2016.05.03