Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 문자열의 문자가 알파벳 순서대로 정렬되어 있는지 확인하는 방법

자바(Java)에서 문자열에 포함된 문자들이 알파벳 순서대로 정렬되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 입력값 검증이나 데이터 정렬 상태 점검 등에 활용할 수 있습니다. 아래 예제 코드를 통해 간단하게 구현하는 방법을 알아보겠습니다.

예제 코드

public class Demo {
   static boolean alphabetical_order(String my_str) {
      int str_len = my_str.length();
      for (int i = 1; i < str_len; i++) {
         if (my_str.charAt(i) < my_str.charAt(i - 1)) {
            return false;
         }
      }
      return true;
   }
   static public void main(String[] args) {
      String my_str = "abcmnqxz";
      if (alphabetical_order(my_str)) {
         System.out.println("The letters are in alphabetical order.");
      } else {
         System.out.println("The letters are not in alphabetical order.");
      }
   }
}

실행 결과

The letters are in alphabetical order.

코드 설명

위 코드의 동작 원리를 단계별로 살펴보겠습니다.

  • alphabetical_order 메서드: Demo 클래스 내부에 정의된 정적(static) 메서드로, 문자열을 매개변수로 받아 알파벳 순서 여부를 검사합니다.
  • 순서 검사 로직: 문자열의 두 번째 문자부터 마지막 문자까지 반복하면서, 현재 문자(charAt(i))가 바로 앞 문자(charAt(i - 1))보다 작은지 비교합니다. 자바에서 char 타입은 유니코드 값으로 비교되기 때문에, 현재 문자가 앞 문자보다 작다는 것은 알파벳 순서가 어긋났음을 의미합니다.
  • 반환 값: 순서가 어긋나는 지점이 발견되면 즉시 false를 반환하고, 끝까지 검사했음에도 문제가 없다면 true를 반환합니다.
  • main 메서드: 테스트용 문자열 "abcmnqxz"를 정의한 뒤 alphabetical_order 메서드를 호출하고, 반환 결과에 따라 알파벳 순서 여부를 콘솔에 출력합니다.

이 방식은 문자열을 한 번만 순회하므로 시간 복잡도가 O(n)으로 매우 효율적입니다. 대소문자가 섞인 문자열을 검사해야 한다면, 비교 전에 toLowerCase() 또는 toUpperCase() 메서드로 문자열을 통일해 주는 것이 좋습니다.