Operating System/JAVA
[JAVA] 문자열의 비교
Growing DBA
2022. 4. 18. 08:47
728x90
반응형
* 두 문자열을 비교할 때는 비교 연산자 '=='대신 equals()라는 메서드를 사용해야 한다. 비교 연산자는 두 문자열이 완전히 같은 것인지 비교할 뿐이므로 문자열의 내용이 같은지 비교하기 위해서는 equals()를 사용하는 것이다. eqlals()는 비교하는 두 문자열이 같으면 true를 다르면 false를 반환한다.
ex) public static void main(String[] args) { String str1 = "abc"; String str2 = new String("abc"); System.out.printf("\"abc\"==\"abc\" ? %b%n", "abc"=="abc"); System.out.printf(" str1==\"abc\" ? %b%n", str1=="abc"); System.out.printf(" str2==\"abc\" ? %b%n", str2=="abc"); System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc")); System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc")); System.out.printf("str2.equals(\"ABC\") ? %b%n", str2.equals("ABC")); System.out.printf("str2.equalsIgnoreCase(\"ABC\") ? %b%n", str2.equalsIgnoreCase("ABC")); } |
결과) "abc"=="abc" ? true str1=="abc" ? true str2=="abc" ? false str1.equals("abc") ? true str2.equals("abc") ? true str2.equals("ABC") ? false str2.equalsIgnoreCase("ABC") ? true |
* str2와 "abc"의 내용이 같은데도 '=='로 비교하면 false를 결과로 얻는다. 내용은 같지만 서로 다른 객체라서 그렇다. 그러나 eqlals()는 객체가 달라도 내용이 같으면 true를 반환한다. 그래서 문자열을 비교할 때는 항상 eqals()를 사용해야 한다는 것을 기억하자.
* 만일 대소문자를 구별하지 않고 비교하고 싶으면 equals() 대신 equalsIgnoreCase()를 사용하면 된다.
728x90
반응형