[Dart/Flutter] 문자열 비교 (동등, 포함)
September 17, 2023
두개의 문자열이 같은지 비교, 포함 여부인지 등, 다양한 문자열 비교 방법에 대해서 알아보겠습니다.
1. == 연산자로 문자열이 같은지 비교
str1 == str2
는 두개의 문자열이 같을 때 true, 다를 때 false를 리턴합니다.
아래와 같이 두개의 문자열이 같은지 비교할 수 있습니다.
- 대소문자를 구분하여 비교합니다. 알파벳이 같아도 대소문자가 다르면 다른 문자열로 판단됨
void main() {
String str1 = "Hello";
String str2 = "Hello";
if (str1 == str2) {
print("두 문자열은 같습니다.");
} else {
print("두 문자열은 다릅니다.");
}
}
Output:
두 문자열은 같습니다.
대소문자 구분 없이 비교
대소문자 구분 없이 비교하려면, 두개의 문자열을 모두 소문자 또는 대문자로 변경하여 비교하면 됩니다.
아래 예제는 두개의 문자열을 모두 소문자로 변경하여 비교합니다.
void main() {
String str1 = "Hello";
String str2 = "hello";
if (str1.toLowerCase() == str2.toLowerCase()) {
print("두 문자열은 같습니다.");
} else {
print("두 문자열은 다릅니다.");
}
}
Output:
두 문자열은 같습니다.
2. compareTo()로 문자열이 같은지 비교
str1.compareTo(str2)
는 str1과 str2가 같을 때 0을 리턴, 다를 때 -1을 리턴합니다.
아래와 같이 두개의 문자열이 같은지 비교할 수 있습니다.
void main() {
String str1 = "Hello";
String str2 = "Hello";
int result = str1.compareTo(str2);
if (result == 0) {
print("두 문자열은 같습니다.");
} else {
print("두 문자열은 다릅니다.");
}
}
Output:
두 문자열은 같습니다.
3. contains()로 문자열 포함 여부 확인
str1.contains(str2)
는 str1에 str2의 문자열이 포함되어있을 때 true 리턴, 그렇지 않으면 false를 리턴합니다.
void main() {
String str1 = "Hello World";
String str2 = "Hello";
if (str1.contains(str2)) {
print("str1에 str2가 포함되어있음");
} else {
print("str1에 str2가 포함되어있지 않음");
}
}
Output:
str1에 str2가 포함되어있음
4. startsWith(), endsWith()로 문자열 시작/끝 확인
다음과 같이 문자열이 특정 문자열로 시작하는지, 끝나는지 확인할 수 있습니다.
str1.startsWith(str2)
: str1이 str2로 시작하면 true, 그렇지 않으면 falsestr1.endsWith(str2)
: str1이 str2로 끝나면 true, 그렇지 않으면 false
void main() {
String str1 = "Hello World";
String str2 = "Hello";
String str3 = "World";
if (str1.startsWith(str2)) {
print("str1는 str2로 시작");
}
if (str1.endsWith(str3)) {
print("str1는 str3으로 끝남");
}
}
Output:
str1는 str2로 시작
str1는 str3으로 끝남