string의 Compare()
함수에 대해서 알아보고 다양한 예제를 소개합니다.
1. string.Compare() 함수
Compare()
는 str1과 str2를 비교하여 결과를 0, 음수, 양수로 리턴합니다.
String.Compare(string str1, string str2)
결과 값의 의미는 아래와 같습니다.
- 0: str1과 str2가 같음
- 음수 : 같지 않음, 정렬 순서에서 str1가 str2보다 앞에 있음 (예를 들어, str1가 알파벳 순서로 정렬할 때 str2보다 앞에 있음)
- 양수 : 같지 않음, 정렬 순서에서 str1가 str2보다 뒤에 있음 (예를 들어, str1가 알파벳 순서로 정렬할 때 str2보다 뒤에 있음)
2. Compare()로 문자열 비교
아래 4개 문자열들을 Compare()
로 비교해보았습니다.
- Compare(str1, str2) : 결과로 음수 리턴. (
C
가J
보다 알파벳 순서가 앞에 있기 때문에) - Compare(str1, str3) : 결과로 0 리턴. (같은 문자열)
- Compare(str1, str4) : 결과로 양수 리턴. (대문자
C
가 소문자c
보다 알파벳 순서가 뒤에 있기 때문에)
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str1 = "Hello, C#";
string str2 = "Hello, Java";
string str3 = "Hello, C#";
string str4 = "Hello, c#";
Console.WriteLine("1: " + string.Compare(str1, str2));
Console.WriteLine("2: " + string.Compare(str1, str3));
Console.WriteLine("3: " + string.Compare(str1, str4));
}
}
}
Output:
1: -1
2: 0
3: 1
3. 대소문자 구분 없이 문자열 비교
Compare()
는 기본적으로 대소문자를 구분하여 비교합니다.
대소문자 없이 구분하고 싶을 때, Compare()
의 3번째 인자로 StringComparison.OrdinalIgnoreCase
를 전달하면 됩니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str1 = "Hello, C#";
string str2 = "Hello, Java";
string str3 = "Hello, C#";
string str4 = "Hello, c#";
Console.WriteLine("1: " + string.Compare(str1, str2, StringComparison.OrdinalIgnoreCase));
Console.WriteLine("2: " + string.Compare(str1, str3, StringComparison.OrdinalIgnoreCase));
Console.WriteLine("3: " + string.Compare(str1, str4, StringComparison.OrdinalIgnoreCase));
}
}
}
Output:
1: -7
2: 0
3: 0
4. 문자열이 같은지 비교
Compare()
의 결과 값을 0과 비교하여 두개의 문자열이 같은지 체크할 수 있습니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str1 = "Hello, C#";
string str2 = "Hello, Java";
string str3 = "Hello, C#";
string str4 = "Hello, c#";
bool result = string.Compare(str1, str2) == 0;
Console.WriteLine("str1 == str2 ? " + result);
result = string.Compare(str1, str3) == 0;
Console.WriteLine("str1 == str3 ? " + result);
result = string.Compare(str1, str4) == 0;
Console.WriteLine("str1 == str4 ? " + result);
}
}
}
Output:
str1 == str2 ? False
str1 == str3 ? True
str1 == str4 ? False
5. 문자열이 같은지 비교 (Ignore case)
3번째 인자에 StringComparison.OrdinalIgnoreCase
를 전달하면 대소문자 구분 없이 비교를 합니다.
결과 값으로 0이 리턴될 때 문자열이 같다고 판단할 수 있습니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str1 = "Hello, C#";
string str2 = "Hello, Java";
string str3 = "Hello, C#";
string str4 = "Hello, c#";
bool result = string.Compare(str1, str2, StringComparison.OrdinalIgnoreCase) == 0;
Console.WriteLine("str1 == str2 ? " + result);
result = string.Compare(str1, str3, StringComparison.OrdinalIgnoreCase) == 0;
Console.WriteLine("str1 == str3 ? " + result);
result = string.Compare(str1, str4, StringComparison.OrdinalIgnoreCase) == 0;
Console.WriteLine("str1 == str4 ? " + result);
}
}
}
Output:
str1 == str2 ? False
str1 == str3 ? True
str1 == str4 ? True
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)