두개의 문자열이 같은지 비교, 포함 여부인지 등, 다양한 문자열 비교 방법에 대해서 알아보겠습니다.

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, 그렇지 않으면 false
  • str1.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으로 끝남