Метод isSurrogate класса Character в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы научитесь использовать метод isSurrogate() класса Character в Java. Этот метод используется для проверки, является ли заданный символ единицей кода суррогата Юникода или нет. Метод isSurrogate() является статическим методом, что означает, что его можно вызывать непосредственно на классе Character без создания экземпляра класса.

Создайте новый Java-файл

Создайте новый Java-файл с именем IsSurrogateDemo.java в директории ~/project.

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.java и java 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

Резюме

Поздравляем! Вы узнали, как использовать метод isSurrogate() класса Character в Java. Этот метод используется для проверки, является ли заданный символ кодовой единицей суррогата Юникода или нет. Вы также узнали, как получать ввод от пользователя и аргументов командной строки, а также как соответствующим образом изменять программу.