• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] C# - String (문자열)

6,008  
목차
  1. string 자료형
  2. 문자열 길이
  3. 문자열 대소문자 변환
  4. 문자열 연결 : + 연산자 / string.Concat() 메서드
  5. 문자열 보간 : $"{var1}{var2}..."
  6. 문자열 문자 접근 / 문자열 추출
  7. 회피문자 - 특수문자 입력
  8. 숫자와 문자열 연결
  9. 문자열 문자 변경

 

string 자료형

 

'문자열' 저장에 사용하는 자료형.

 


 

1.

string (문자열) 자료형 데이터는 큰따옴표("")로 묶음. 

cf. 

char (단일문자) 자료형 데이터는 작은따옴표('')로 묶음.

 

2.

각 문자 당 2bytes 할당.

 

3.

문자열은 객체임. 따라서, 다양한 작업 위한 속성과 메서드 가짐.

(예) string.Length string.ToUpper()

 


[예제]

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string hz = "Homzzang.com";

            Console.WriteLine(hz);

        }

    }

}

 

결과값: Homzzang.com

 

문자열 길이

 

문자열 객체에 내장된 Length 속성 이용.

(예) string.Length

 

PS1. 문자열은 객체 일종이며, 객체는 속성과 메서드 보유 가능.

PS2. 첫 글자만 대문자로 입력해야 함.

cf. C++ 경우, size() 함수나 length() 함수 이용.

 


[예제] 

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string hz = "Homzzang.com";

            Console.WriteLine(hz.Length);

        }

    }

}

 

결과값: 12

 

문자열 대소문자 변환

 

문자열은 객체 일종이라, 여러 메서드 가짐.

(예) 

string.ToUpper() 메서드 : 대문자로 변환.

string.ToLower() 메서드 : 소문자로 변환.

 


[예제]

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "Homzzang.com";

            Console.WriteLine(hz.ToUpper()); // HOMZZANG.COM

            Console.WriteLine(hz.ToLower()); // homzzang.com

        }

    }

}

 

 

문자열 연결 : + 연산자 / string.Concat() 메서드

 

방법1. + 연산자 사용. 

(예) string1 + string2 + ...

 

방법2. Concat() 메서드 이용

string.Concat(string1, string2, ....)

 


[예제1] + 연산자로 문자열 연결.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string ko = "홈짱닷컴 ";

            string en = "Homzzang.com";

            string hz = ko + en;

            Console.WriteLine(hz);

        }

    }

}

 

결과값: 홈짱닷컴 Homzzang.com


PS. 공백 추가 후 연결.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string ko = "홈짱닷컴";

            string en = "Homzzang.com";

            string hz = ko + " " + en;

            Console.WriteLine(hz);

        }

    }

}

 

결과값:  홈짱닷컴 Homzzang.com


[예제2] Concat() 메서드로 문자열 연결.

 

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string ko = "홈짱닷컴";

            string en = "Homzzang.com";

            string hz = string.Concat(ko, " ", en);

            Console.WriteLine(hz);

        }

    }

}

 

결과값: 홈짱닷컴 Homzzang.com 

 

문자열 보간 : $"{var1}{var2}..."

※ 문자열 보간 (Interpolation)

 

변수를 $기호로 시작하는 문자열 안 중괄호 된 {변수명}자리에 입력.

(예) $"{var1} {var2}";

 

PS1. $기호 붙이는 것 잊지말 것.

PS2. 변수 간 간격 띄우려면, 그냥 중괄호 간 간격 띄우면 됨.

PS3. C# 6 버전 때 도입.

 


[예제]

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string ko = "홈짱닷컴";

            string en = "Homzzang.com";

            string hz = $"코딩 강의: {ko} {en}";

            Console.WriteLine(hz);

        }

    }

}

 

결과값: Welcome to 홈짱닷컴 Homzzang.com 

 

문자열 문자 접근 / 문자열 추출

 

string[index]  방식으로 접근 가능.

※ index는 0부터 시작. 

(예) 첫 글자: 0, 두 번째 글자: 1 ...

 


[예제1] string[0] - 첫 번째 글자 출력.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string hz = "Homzzang.com";

            Console.WriteLine(hz[0]); // H

        }

    }

}

 

결과값: H


[예제2] string[string.Length-1] - 마지막 글자 출력.

  

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string hz = "Homzzang.com";

            Console.WriteLine(hz[hz.Length -1]);

        }

    }

}

 

결과값: m


[예제3] string.IndexOf("part") 메서드 - 문자열 색인번호 반환.

※ 여러 개 경우, 가장 첫 번째 위치 반환.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string hz = "homzzang.com";

            Console.WriteLine(hz.IndexOf("z")); // 3

        }

    }

}

 


[예제4] string.Substring(idx, Length) - 지정 위치부터 지정 길이만큼 문자열 추출.

※ Length 없으면, 마지막까지 추출.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "Homzzang.com 홈짱닷컴";

            int idx = hz.IndexOf("c");

            string after = hz.Substring(idx, 3);

            Console.WriteLine(after); // com

        }

    }

 

 

회피문자 - 특수문자 입력

1. \ (백슬래시) - 구문 상 "입력 불가 문자"를 입력할 때 사용.

 

(예제)

'  :  작은따옴표 입력.

\"  :  큰따옴표 입력.

\\  :  역슬래시 입력.

 


[예제1] 큰따옴표 입력: \"

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "\"홈짱닷컴\" Homzzang.com";

            Console.WriteLine(hz); // "홈짱닷컴" Homzzang.com

        }

    }

}

 


[예제2] 작은따옴표 입력: '

※ 아래 예제는 역슬래시 없어도 입력됨.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "'홈짱닷컴' Homzzang.com";

            Console.WriteLine(hz); // '홈짱닷컴' Homzzang.com

        }

    }

}

 

결과보기: '홈짱닷컴' Homzzang.com


[예제3] 역슬래시 입력: \\

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "\\홈짱닷컴\\ Homzzang.com";

            Console.WriteLine(hz); // \홈짱닷컴\ Homzzang.com

        }

    }

}

 

결과값: \홈짱닷컴\ Homzzang.com


2. \n  :  개행 (= 문자열 입력 라인 변경)

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "홈짱닷컴\nHomzzang.com";

            Console.WriteLine(hz);

        }

    }

}

 

결과값:

홈짱닷컴

Homzzang.com


3. \r  :  캐리지 리턴 (Carrage Return : 새 줄 시작)

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "홈짱닷컴\rHomzzang.com";

            Console.WriteLine(hz);

        }

    }

}

 

반환값: Homzzang.com 


4. \t  :  탭 (Tab) 키 누른 만큼 간격 띄우기.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "홈짱닷컴\tHomzzang.com";

            Console.WriteLine(hz);

        }

    }

}

 

반환값: 홈짱닷컴     Homzzang.com


5. \b  :  백스페이스 (Backspace) 키 누른 효과.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "홈짱닷컴 \bHomzzang.com";

            Console.WriteLine(hz);

        }

    }

}

 

반환값: 홈짱닷컴Homzzang.com


6. \f  :  폼 피드 (Form Feed)

 

예제 준비 중. 

 

 

숫자와 문자열 연결

 

+ 연산자는 '덧셈'과 '문자열 연결' 모두에 사용 가능.

 

① (숫자 + 숫자) 경우, 덧셈 연산.

② (문자열 + 문자열) 경우, 문자열 연결.

단, (숫자 + 문자열) 경우, 에러 발생할 수도 있음.

 


[예제1] 숫자 + 숫자 경우,  '덧셈' 연산

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            int x = 3;

            int y = 4;

            int z = x + y; // 7

            Console.WriteLine(z);

        }

    }

}

 

결과값: 7


[예제2] 문자열 + 문자열 경우, 문자열 연결.

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string x = "3";

            string y = "4";

            string z = x + y; // 34

            Console.WriteLine(z);

        }

    }

}

 

결과값: 34


[예제3] 문자열 + 숫자 경우, 결합한 것을 어떤 자료형 변수에 담냐에 따라 에러가 발생할 수도 있고 안 할 수도 있음.

 

※ 에러 유발 X 경우. 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string x = "3";

            int y = 4;

            string z = x + y;  // 에러 유발 X (∵ 암묵적변환 O)

            Console.WriteLine(z);

        }

    }

}

 

※ 에러 유발 O 경우.

using System;

namespace Homzzang

{

    class Program

    {

        static void Main(string[] args)

        {

            string x = "3";

            int y = 4;

            int z = x + y;  // 에러 유발 O (∵ 암묵적변환 X)

            Console.WriteLine(z);

        }

    }

}

 

 

문자열 문자 변경

 

string.Replace(old, new) 메서드 이용.

 

cf. C++ 경우, 아래 방법 가능.

string[index] = 'new_value';



[예제] 첫 번째 글자를 h → H 변경. 

 

using System;

namespace Homzzang

{

    class Program

    {

        static void Main()

        {

            string hz = "homzzang.com";

            Console.WriteLine(hz.Replace('h','H'));

        }

    }

}

 

결과값: Homzzang.com 



분류 제목
basic C# - Home (입문) - 추천 링크
basic C# - Intro (소개) - 용도・특징
basic C# - Start (시작) - Visual Studio Community 설치/실행/세팅
basic C# - Syntax (구문)
basic C# - Output (출력)
basic C# - New Lines (줄바꿈)
basic C# - Comment (주석)
basic C# - Variable (변수)
basic C# - User Input (사용자 입력)
basic C# - Data Type (데이터 타입) - 자료형 (종류 + 변환)
basic C# - Operator (연산자)
basic C# - String (문자열)
basic C# - Math (수학)
basic C# - Boolean (참거짓)
basic C# - If ... Else - (이프 조건문)
basic C# - Switch (스위치 조건문)
basic C# - While Loop (와일 반복문)
basic C# - For Loop (포 반복문)
basic C# - Break/Continue (브레이크/컨티뉴) 키워드 - 반복문 빠져나가기 / 특정 조건 건너띄기
basic C# - Arrays (배열)
1/2
목록
찾아주셔서 감사합니다. Since 2012