Java의 Character 클래스는 Object 클래스의 하위 클래스로, 기본 타입인 char 값을 객체 형태로 감싸는 래퍼(Wrapper) 클래스입니다. Character 타입의 객체는 char 타입의 필드 하나를 포함하고 있습니다.
isUpperCase() 메서드란?
문자열에 포함된 모든 대문자를 출력하려면 반복문을 사용해 문자열의 각 문자를 하나씩 순회하면서, 해당 문자가 대문자인지 여부를 확인하면 됩니다. 이때 활용하는 것이 바로 Character 클래스의 정적(static) 메서드인 isUpperCase()입니다. 이 메서드는 전달받은 문자가 대문자이면 true, 그렇지 않으면 false를 반환합니다.
문법
public static boolean isUpperCase(char ch)
- 매개변수: 검사할 문자(ch)
- 반환값: 대문자일 경우 true, 아닐 경우 false
예제 코드
public class PrintUpperCaseLetterStringTest {
public static void main(String[] args) {
String str = "Welcome To Tutorials Point India";
for(int i = 0; i < str.length(); i++) {
if(Character.isUpperCase(str.charAt(i))) {
System.out.println(str.charAt(i));
}
}
}
}위 예제에서는 charAt() 메서드로 문자열의 각 위치에 있는 문자를 가져온 뒤, isUpperCase() 메서드로 해당 문자가 대문자인지 판별합니다. 대문자라면 화면에 출력합니다.
실행 결과
W T T P I
문자열 "Welcome To Tutorials Point India"에서 대문자인 W, T, T, P, I만 순서대로 출력되는 것을 확인할 수 있습니다.
참고 사항
이 방법 외에도 Java 8 이상에서는 스트림(Stream) API를 활용해 다음과 같이 간결하게 작성할 수 있습니다.
str.chars() .filter(c -> Character.isUpperCase(c)) .forEach(c -> System.out.println((char) c));
스트림 방식은 코드가 더 짧아지고 가독성이 좋아지므로, 필터링 로직이 복잡해지는 경우 특히 유용합니다.