Java 21 verbessert die Handhabung von Emoji-Emoticons

Entdecken Sie etwas Interessantes in Java 21!

java.Lang.CharacterDer Klasse wurde eine API zur Bestimmung, ob ein Zeichen ein Emoji ist, hinzugefügt, die hauptsächlich die folgenden sechs neuen statischen Methoden umfasst :

public static boolean isEmoji(int codePoint) {
  return CharacterData.of(codePoint).isEmoji(codePoint);
}

public static boolean isEmojiPresentation(int codePoint) {
  return CharacterData.of(codePoint).isEmojiPresentation(codePoint);
}

public static boolean isEmojiModifier(int codePoint) {
  return CharacterData.of(codePoint).isEmojiModifier(codePoint);
}

public static boolean isEmojiModifierBase(int codePoint) {
  return CharacterData.of(codePoint).isEmojiModifierBase(codePoint);
}
  
public static boolean isEmojiComponent(int codePoint) {
  return CharacterData.of(codePoint).isEmojiComponent(codePoint);
}

public static boolean isExtendedPictographic(int codePoint) {
  return CharacterData.of(codePoint).isExtendedPictographic(codePoint);
}

Diese statischen Methoden geben Werte zurück, indem sie Zeichen empfangen, codePointum festzustellen, ob es sich um Emoticons handelt boolean.

Daher können wir isEmojiMethoden verwenden, um festzustellen, ob eine Zeichenfolge Ausdrücke enthält, wie zum Beispiel:

@Test
void testEmoji() {
  String message = "欢迎来到 www.didispace.com ❤️,要不要来杯 ☕️ ?";
  if(message.codePoints().anyMatch(Character::isEmoji)) {
    System.out.println("Message包含表情");
  }
}

Zusätzlich zur Bestimmung, ob die Zeichenfolge Emoticons enthält, können Sie mit isEmojiModifierund auch isEmojiModifierBasefeststellen, ob das Emoji geändert wurde und ob es geändert werden kann:

@Test
void testEmoji2() {
  String welcomeMsg ="欢迎来到 www.didispace.com ❤️,要不要来杯 ☕️ ?";
  OptionalInt emojiOptional = welcomeMsg.codePoints().filter(Character::isEmoji).findFirst();
  if (emojiOptional.isPresent()) {
    int emojiCodePoint = emojiOptional.getAsInt();
    if (Character.isEmojiModifierBase(emojiCodePoint)) {
      System.out.println("Emoji can be modified");
      if (Character.isEmojiModifier(emojiCodePoint))
        System.out.println("Emoji is modified");
      else
        System.out.println("Emoji has not been modified");
    } else
      System.out.println("Emoji cannot be modified");
  } else
    System.out.println("No emoji present");
}

Verwenden Sie reguläre Ausdrücke

Diese neuen Methoden können auch über durch Attribute konstruierte reguläre Ausdrücke verwendet werden, wie zum Beispiel:

String welcomeMsg = "欢迎来到 www.didispace.com ❤️,要不要来杯 ☕️ ?";

Matcher matcher = Pattern.compile("\\p{IsEmoji}").matcher(welcomeMsg);

if(matcher.find()) {
	System.out.println("Message contains an emoji!");
}

matcher = Pattern.compile("\\p{IsEmoji_Modifier_Base}").matcher(welcomeMsg);

if(matcher.find()) {
	System.out.println("Message contains an emoji modifier base!");
}

Was ist, wenn Sie beim Lernen auf Schwierigkeiten stoßen? Sie können unserer hochqualitativen technischen Austauschgruppe beitreten , um an Austauschen und Diskussionen für besseres Lernen und Fortschritte teilzunehmen! Geh auch nicht weg und folge mir! Aktualisieren Sie die Spalte „Neue Java-Funktionen“ kontinuierlich !

Willkommen, um meinem öffentlichen Konto zu folgen: Programmierer DD. Seien Sie der Erste, der aktuelle Branchennachrichten versteht, ausführliche technische Informationen weitergibt und hochwertige Lernressourcen erhält

OpenAI öffnet ChatGPT Voice Vite 5 kostenlos für alle Benutzer. Es wird offiziell veröffentlicht . Zauberoperation des Betreibers: Trennen des Netzwerks im Hintergrund, Deaktivieren von Breitbandkonten, Erzwingen des Wechsels optischer Modems durch Benutzer. Microsoft Open-Source-Terminal-Chat- Programmierer manipulierten ETC-Guthaben und mehr als 2,6 Millionen Yuan pro Jahr unterschlagen. Der vom Vater von Redis verwendete reine C-Sprachcode implementiert das Telegram Bot-Framework. Wenn Sie ein Open-Source-Projektbetreuer sind, wie weit können Sie diese Art von Antwort ertragen? Microsoft Copilot Web AI wird am 1. Dezember offiziell eingeführt und unterstützt das chinesische OpenAI. Die ehemaligen CEOs und Präsidenten Sam Altman und Greg Brockman wechselten zu Microsoft. Broadcom gab die erfolgreiche Übernahme von VMware bekannt.
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/didispace/blog/10150864
Recomendado
Clasificación