Java 문자 비교
Java 문자 비교
1. 원시 문자 비교
1) 관계 연산자 사용
일반적으로 문자를 비교하는 가장 간단한 방법은 관계 연산자를 사용하는 것이다.
요컨대, 문자는 ASCII 코드의 순서에 따라 Java에서 비교된다.
1
2
3
assertFalse('a' == 'A');
assertTrue('a' < 'v');
assertTrue('F' > 'D');
2) Character.compare() 메서드 사용
마찬가지로 다른 방법은 Character 클래스의 compare() 메서드를 사용하는 것이다.
간단히 말해서 Character 클래스는 객체의 기본 유형 char 값을 래핑 한다. compare() 메서드는 두 개의 char 매개 변수를 받아 수치상으로 비교한다.
1
2
3
assertTrue(Character.compare('C', 'C') == 0);
assertTrue(Character.compare('f', 'A') > 0);
assertTrue(Character.compare('Y', 'z') < 0);
위와 같이 compare(char, char b) 메서드는 int 값을 반환한다. a와 b의 ASCII 코드의 차이를 나타낸다.
반환된 값은 두 char 값이 동일하면 0이고, a < b이면 0보다 작고, 그렇지 않으면 0보다 크다.
2. 캐릭터 객체 비교
1) Character.compareTo() 메서드 사용
Character 클래스는 두 문자 객체를 수치상으로 비교하기 위해 compareTo() 메서드를 제공한다.
1
2
3
4
5
6
7
8
Character chK = Character.valueOf('K');
assertTrue(chK.compareTo(chK) == 0);
Character chG = Character.valueOf('G');
assertTrue(chK.compareTo(chG) > 0);
Character chH = Character.valueOf('H');
assertTrue(chG.compareTo(chH) < 0);
여기서는 생성자가 Java 9부터 사용되지 않기 때문에 valueOf() 메서드를 사용하여 Character 객체를 생성 했다.
2) Object.equals() 메서드 사용
또한 객체를 비교하는 일반적인 방법중 하나는 equals() 메서드를 사용하는 것이다. 두 객체가 같으면 tru를 반환하고 그렇지 않으면 false를 반환한다.
문자를 비교하는데 사용하는 방법이다.
1
2
3
4
5
Character chL = 'L';
assertTrue(chL.equals(chL));
Character chV = 'V';
assertFalse(chL.equals(chV));
3) Objects.equals() 메서드 사용
Objects 클래스는 개체 작업을 위한 유틸리티 메서드로 구성된다. equals() 메서드를 통해 문자 객체를 비교하는 또 다른 방법을 제공한다.
1
2
3
4
5
Character chA = 'A';
Character chB = 'B';
assertTrue(Objects.equals(chA, chA));
assertFalse(Objects.equals(chA, chB));
equals() 메서드는 문자 객체가 서로 같으면 true를 반환하고 그렇지 않으면 false를 반환한다.
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.