C# 문자열
C#에서는 문자 배열을 사용하여 문자열을 나타낼 수 있지만 string 키워드를 사용하여 문자열 변수를 선언하는 것이 더 일반적입니다. string 키워드는 System.String 클래스의 별칭입니다.
String 객체 생성
다음 방법 중 하나를 사용하여 문자열 객체를 생성할 수 있습니다.
String 변수에 문자열 할당
String 클래스 생성자 사용
사용 a 문자열 연결 연산자( + )
속성을 검색하거나 문자열을 반환하는 메서드를 호출하여 값이나 개체를 문자열 표현으로 변환합니다.
형식 지정 방법을 통해 값이나 개체를 문자열 표현으로 변환합니다.
아래 예:
using System; namespace StringApplication { class Program { static void Main(string[] args) { //字符串,字符串连接 string fname, lname; fname = "Rowan"; lname = "Atkinson"; string fullname = fname + lname; Console.WriteLine("Full Name: {0}", fullname); //通过使用 string 构造函数 char[] letters = { 'H', 'e', 'l', 'l','o' }; string greetings = new string(letters); Console.WriteLine("Greetings: {0}", greetings); //方法返回字符串 string[] sarray = { "Hello", "From", "Tutorials", "Point" }; string message = String.Join(" ", sarray); Console.WriteLine("Message: {0}", message); //用于转化值的格式化方法 DateTime waiting = new DateTime(2012, 10, 10, 17, 58, 1); string chat = String.Format("Message sent at {0:t} on {0:D}", waiting); Console.WriteLine("Message: {0}", chat); Console.ReadKey() ; } } }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
Full Name: RowanAtkinson Greetings: Hello Message: Hello From Tutorials Point Message: Message sent at 17:58 on Wednesday, 10 October 2012
String 클래스의 속성
String 클래스에는 다음 두 가지 속성이 있습니다.
일련 번호 | 속성 이름 및 설명 |
---|---|
1 | Chars 현재 String 개체에서 Char 개체의 지정된 위치를 가져옵니다. |
2 | Length 현재 String 개체의 문자 수를 가져옵니다. |
문자열 클래스의 메서드
문자열 클래스에는 문자열 개체에 대해 작업을 수행하는 여러 가지 메서드가 있습니다. 아래 표에는 가장 일반적인 방법 중 일부가 나와 있습니다.
일련번호 | 메서드 이름 및 설명 |
---|---|
1 | public static int Compare(
문자열 strA,
문자열 strB
) 지정된 두 문자열 개체를 비교하고 정렬 순서에서 상대적 위치를 나타내는 정수를 반환합니다. 이 방법은 대소문자를 구분합니다. |
2 | public static int 비교(
문자열 strA,
문자열 strB,
boolignoreCase
) 지정된 두 문자열 개체를 비교하고 정렬 순서에서 상대적 위치를 나타내는 정수를 반환합니다. 그러나 부울 인수가 true인 경우 메소드는 대소문자를 구분하지 않습니다. |
3 | 공개 정적 문자열 Concat(
문자열 str0,
문자열 str1
) 두 개의 문자열 객체를 연결합니다. |
4 | 공개 정적 문자열 Concat(
문자열 str0,
문자열 str1,
문자열 str2
) 세 개의 문자열 개체를 연결합니다. |
5 | 공개 정적 문자열 Concat(
문자열 str0,
문자열 str1,
문자열 str2,
문자열 str3
) 4개의 문자열 객체를 연결합니다. |
6 | public bool에는(
문자열 값
) 지정된 문자열 객체가 문자열에 나타나는지 여부를 나타내는 값을 반환합니다. |
7 | 공개 정적 문자열 복사(
문자열 str
) 지정된 문자열과 동일한 값을 가진 새 String 객체를 생성합니다. |
8 | public void CopyTo(
정수 소스 인덱스,
char[] 대상,
정수 목적지 인덱스,
정수 개수
) 문자열 객체의 지정된 위치부터 지정된 개수의 문자를 유니코드 문자 배열의 지정된 위치에 복사합니다. |
9 | public bool EndsWith(
문자열 값
) 문자열 개체의 끝이 지정된 문자열과 일치하는지 확인합니다. |
10 | public bool Equals(
문자열 값
) 현재 문자열 개체가 지정된 문자열 개체와 동일한 값을 가지고 있는지 확인합니다. |
11 | public static bool Equals(
문자열 a,
문자열 b
) 지정된 두 문자열 개체가 동일한 값을 갖는지 확인합니다. |
12 | 공개 정적 문자열 형식(
문자열 형식,
개체 인수0
) 지정된 문자열에 있는 하나 이상의 형식 항목을 지정된 개체의 문자열 표현으로 바꿉니다. |
13 | public int IndexOf(
문자 값
) 현재 문자열에서 지정된 유니코드 문자가 처음 나타나는 인덱스를 0부터 반환합니다. |
14 | public int IndexOf(
문자열 값
) 이 인스턴스에서 지정된 문자열이 처음 나타나는 인덱스를 0부터 반환합니다. |
15 | public int IndexOf(
문자 값,
int startIndex
) 이 문자열에서 지정된 유니코드 문자가 처음 나타나는 인덱스를 반환합니다. 지정된 문자 위치에서 시작하여 0부터 시작합니다. |
16 | public int IndexOf(
문자열 값,
int startIndex
) 이 인스턴스의 지정된 문자 위치에서 시작하여 지정된 문자열이 처음 나타나는 인덱스를 반환합니다. |
17 | public int IndexOfAny(
문자[] 임의의
) 이 인스턴스의 지정된 유니코드 문자 배열에서 문자가 처음 나타나는 인덱스를 반환합니다. |
18 | public int IndexOfAny(
char[] 임의의,
int startIndex
) 인스턴스의 지정된 문자 위치에서 시작하여 지정된 유니코드 문자 배열에서 문자가 처음 나타나는 인덱스를 반환하며, 인덱스는 0부터 시작합니다. |
19 | 공개 문자열 삽입(
정수 시작 인덱스,
문자열 값
) 현재 문자열 객체의 지정된 인덱스에 지정된 문자열이 삽입된 새 문자열을 반환합니다. |
20 | public static bool IsNullOrEmpty(
문자열 값
) 지정된 문자열이 null인지 빈 문자열인지 여부를 나타냅니다. |
21 | 공개 정적 문자열 Join(
문자열 구분 기호,
매개변수 문자열[] 값
) 문자열 배열의 모든 요소를 연결하고 지정된 구분 기호를 사용하여 각 요소를 구분합니다. |
22 | 공개 정적 문자열 Join(
문자열 구분 기호,
문자열[] 값,
정수 시작 인덱스,
정수 개수
) 각 요소를 구분하는 지정된 구분 기호를 사용하여 문자열 배열의 지정된 위치에서 시작하여 지정된 요소를 연결합니다. |
23 | public int LastIndexOf(
문자 값
) 현재 문자열 객체에서 지정된 유니코드 문자가 마지막으로 나타나는 인덱스 위치를 반환합니다. 인덱스는 0부터 시작합니다. |
24 | public int LastIndexOf(
문자열 값
) 현재 문자열 객체에서 지정된 문자열이 마지막으로 나타나는 인덱스 위치를 반환합니다. 인덱스는 0부터 시작합니다. |
25 | 공개 문자열 제거(
int startIndex
) 지정된 위치부터 마지막 위치까지 현재 인스턴스의 모든 문자를 제거하고 문자열을 반환합니다. |
26 | 공개 문자열 제거(
정수 시작 인덱스,
정수 개수
) 현재 문자열의 지정된 위치부터 지정된 개수의 문자를 제거하고 문자열을 반환합니다. |
27 | 공개 문자열 바꾸기(
오래된 Char,
char newChar
) 현재 문자열 객체에 지정된 모든 유니코드 문자를 지정된 다른 유니코드 문자로 바꾸고 새 문자열을 반환합니다. |
28 | 공개 문자열 바꾸기(
문자열 oldValue,
문자열 새값
) 현재 문자열 개체에 지정된 모든 문자열을 지정된 다른 문자열로 바꾸고 새 문자열을 반환합니다. |
29 | 공개 문자열[] 분할(
params char[] 구분 기호
) 지정된 유니코드 문자 배열의 요소로 구분된 현재 문자열 객체의 하위 문자열을 포함하는 문자열 배열을 반환합니다. |
30 | 공개 문자열[] 분할(
char[] 구분 기호,
정수 개수
) 지정된 유니코드 문자 배열의 요소로 구분된 현재 문자열 객체의 하위 문자열을 포함하는 문자열 배열을 반환합니다. int 매개변수는 반환할 최대 하위 문자열 수를 지정합니다. |
31 | public bool StartsWith(
문자열 값
) 문자열 인스턴스의 시작 부분이 지정된 문자열과 일치하는지 확인합니다. |
32 | public char[] ToCharArray() 현재 문자열 객체의 모든 문자가 포함된 유니코드 문자 배열을 반환합니다. |
33 | 공개 문자[] ToCharArray(
정수 시작 인덱스,
정수 길이
) 현재 문자열 객체의 모든 문자가 포함된 유니코드 문자 배열을 반환하며, 지정된 인덱스에서 시작하여 지정된 길이로 끝납니다. |
34 | public string ToLower() 문자열을 소문자로 변환하여 반환합니다. |
35 | 공용 문자열 ToUpper() 문자열을 대문자로 변환하여 반환합니다. |
36 | public string Trim() 현재 String 객체에서 모든 선행 및 후행 공백 문자를 제거합니다. |
위 메서드 목록은 완전한 것이 아닙니다. 전체 메서드 목록과 String 클래스 생성자를 보려면 MSDN 라이브러리를 방문하세요.
예제
다음 예는 위에서 언급한 방법 중 일부를 보여줍니다.
문자열 비교
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str1 = "This is test"; string str2 = "This is text"; if (String.Compare(str1, str2) == 0) { Console.WriteLine(str1 + " and " + str2 + " are equal."); } else { Console.WriteLine(str1 + " and " + str2 + " are not equal."); } Console.ReadKey() ; } } }
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
This is test and This is text are not equal.
문자열에 문자열이 포함됩니다.
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str = "This is test"; if (str.Contains("test")) { Console.WriteLine("The sequence 'test' was found."); } Console.ReadKey() ; } } }
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
The sequence 'test' was found.
하위 문자열 가져오기:
Instance
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string str = "Last night I dreamt of San Pedro"; Console.WriteLine(str); string substr = str.Substring(23); Console.WriteLine(substr); Console.ReadKey() ; } } }
Run Instance »
"예제 실행" 버튼을 클릭하세요. 온라인 예제를 보려면
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.
Last night I dreamt of San Pedro San Pedro
연결 문자열:
using System; namespace StringApplication { class StringProg { static void Main(string[] args) { string[] starray = new string[]{"Down the way nights are dark", "And the sun shines daily on the mountain top", "I took a trip on a sailing ship", "And when I reached Jamaica", "I made a stop"}; string str = String.Join("\n", starray); Console.WriteLine(str); Console.ReadKey() ; } } }
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. 다음 결과:
Down the way nights are dark And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop