두개의 문자열이 같은지 비교하는 방법을 소개합니다.
1. Equals()를 이용한 방법
str1.Equals(str2)
는 str1과 str2가 같을 때 true를 리턴합니다.
기본적으로 대소문자를 구분(case sensitive)하여 비교합니다.
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 = str1.Equals(str2);
Console.WriteLine("str1 == str2 ? " + result);
result = str1.Equals(str3);
Console.WriteLine("str1 == str3 ? " + result);
result = str1.Equals(str4);
Console.WriteLine("str1 == str4 ? " + result);
}
}
}
Output:
str1 == str2 ? False
str1 == str3 ? True
str1 == str4 ? False
1.1 대소문자 구분 없이 비교(Ignore case)
대소문자 구분 없이 비교하려면 Equals()
의 두번째 인자로 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#";
bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine("str1 == str2 ? " + result);
result = str1.Equals(str3, StringComparison.OrdinalIgnoreCase);
Console.WriteLine("str1 == str3 ? " + result);
result = str1.Equals(str4, StringComparison.OrdinalIgnoreCase);
Console.WriteLine("str1 == str4 ? " + result);
}
}
}
Output:
str1 == str2 ? False
str1 == str3 ? True
str1 == str4 ? True
2. string.Compare()를 이용한 방법
Compare(str1, str2)
는 str1과 str2를 비교하며 아래와 같은 결과를 리턴합니다.
- 0: str1과 str2가 같음
- 음수 : 같지 않음, 정렬 순서에서 str1가 str2보다 앞에 있음
- 양수 : 같지 않음, 정렬 순서에서 str1가 str2보다 뒤에 있음
따라서, 아래와 같이 리턴 값이 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
2.1 대소문자 구분 없이 비교(Ignore case)
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#";
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
3. StringComparer를 이용한 방법
StringComparer는 Compare(str1, str2)
함수를 제공하며 위의 Compare()
와 동일하게 동작합니다.
StringComparer 객체를 생성할 때, StringComparer.Ordinal
로 생성하면 대소문자를 구분하여 비교합니다.
아래와 같이 두개의 문자열이 같은지 비교할 수 있습니다.
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#";
StringComparer sc = StringComparer.Ordinal;
bool result = sc.Compare(str1, str2) == 0;
Console.WriteLine("str1 == str2 ? " + result);
result = sc.Compare(str1, str3) == 0;
Console.WriteLine("str1 == str3 ? " + result);
result = sc.Compare(str1, str4) == 0;
Console.WriteLine("str1 == str4 ? " + result);
}
}
}
Output:
str1 == str2 ? False
str1 == str3 ? True
str1 == str4 ? False
3.1 대소문자 구분 없이 비교(Ignore case)
StringComparer.OrdinalIgnoreCase
로 StringComparer 객체를 생성하면 대소문자 구분 없이 비교합니다.
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#";
StringComparer sc = StringComparer.OrdinalIgnoreCase;
bool result = sc.Compare(str1, str2) == 0;
Console.WriteLine("str1 == str2 ? " + result);
result = sc.Compare(str1, str3) == 0;
Console.WriteLine("str1 == str3 ? " + result);
result = sc.Compare(str1, str4) == 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 배열 정렬 (오름차순, 내림차순)