Java Character isSurrogate 메서드

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 의 Character 클래스에 있는 isSurrogate() 메서드를 사용하는 방법을 배우게 됩니다. 이 메서드는 주어진 문자가 유니코드 서러게이트 코드 유닛 (Unicode surrogate code unit) 인지 여부를 확인하는 데 사용됩니다. isSurrogate() 메서드는 정적 메서드 (static method) 이므로, 클래스의 인스턴스를 생성하지 않고도 Character 클래스에서 직접 호출할 수 있습니다.

새로운 Java 파일 생성

~/project 디렉토리에 IsSurrogateDemo.java라는 이름의 새로운 Java 파일을 생성합니다.

touch ~/project/IsSurrogateDemo.java

Java 코드 작성

다음 코드를 복사하여 IsSurrogateDemo.java 파일에 붙여넣습니다.

import java.util.Scanner;

public class IsSurrogateDemo {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("Enter a character: ");
      char ch = sc.nextLine().charAt(0);
      boolean isSurrogateChar = Character.isSurrogate(ch);
      if (isSurrogateChar) {
         System.out.println(ch + " is a surrogate code unit.");
      } else {
         System.out.println(ch + " is not a surrogate code unit.");
      }
   }
}

프로그램 컴파일 및 실행

터미널을 열고 ~/project 폴더로 이동합니다. 다음 명령을 사용하여 IsSurrogateDemo.java 파일을 컴파일합니다.

javac IsSurrogateDemo.java

프로그램이 오류 없이 컴파일되면 다음 명령을 사용하여 프로그램을 실행합니다.

java IsSurrogateDemo

(선택 사항) 문자열 테스트

단일 문자 대신 문자열을 테스트하도록 Java 코드를 수정할 수 있습니다. 코드를 수정하는 방법은 다음과 같습니다.

import java.util.Scanner;

public class IsSurrogateDemo {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("Enter a string: ");
      String input = sc.nextLine();
      for (int i = 0; i < input.length(); i++) {
         char ch = input.charAt(i);
         boolean isSurrogateChar = Character.isSurrogate(ch);
         if (isSurrogateChar) {
            System.out.println(ch + " is a surrogate code unit.");
         } else {
            System.out.println(ch + " is not a surrogate code unit.");
         }
      }
   }
}

이전과 동일한 명령 (javac IsSurrogateDemo.javajava IsSurrogateDemo) 을 사용하여 수정된 프로그램을 컴파일하고 실행합니다.

명령줄 인수를 사용하도록 프로그램 수정

사용자에게 입력을 요청하는 대신 명령줄 인수에서 입력 문자 또는 문자열을 받도록 Java 코드를 수정할 수 있습니다. 코드를 수정하는 방법은 다음과 같습니다.

public class IsSurrogateDemo {
   public static void main(String[] args) {
      if (args.length == 0) {
         System.out.println("Please enter a character or string as command-line argument.");
         return;
      }

      for (String arg : args) {
         for (int i = 0; i < arg.length(); i++) {
            char ch = arg.charAt(i);
            boolean isSurrogateChar = Character.isSurrogate(ch);
            if (isSurrogateChar) {
               System.out.println(ch + " is a surrogate code unit.");
            } else {
               System.out.println(ch + " is not a surrogate code unit.");
            }
         }
      }
   }
}

다음 명령을 사용하여 수정된 프로그램을 컴파일하고 실행합니다 ( "e"를 원하는 문자 또는 문자열로 바꿉니다).

javac IsSurrogateDemo.java
java IsSurrogateDemo e

요약

축하합니다! Java 에서 Character 클래스의 isSurrogate() 메서드를 사용하는 방법을 배웠습니다. 이 메서드는 주어진 문자가 유니코드 (Unicode) 서러게이트 코드 유닛 (surrogate code unit) 인지 확인하는 데 사용됩니다. 또한 사용자 및 명령줄 인수로부터 입력을 받는 방법과 그에 따라 프로그램을 수정하는 방법도 배웠습니다.