Überprüfen Sie, ob der Buchstabe ist emoji
Möchte ich prüfen, ob es ein Brief ist ein emoji. Ich habe festgestellt, dass einige ähnliche Fragen auf und so fand diese regex:
private final String emo_regex = "([\\u20a0-\\u32ff\\ud83c\\udc00-\\ud83d\\udeff\\udbb9\\udce5-\\udbb9\\udcee])";
Jedoch, wenn ich den folgenden Code in einem Satz wie:
for (int k=0; k<letters.length;k++) {
if (letters[k].matches(emo_regex)) {
emoticon.add(letters[k]);
}
}
Es nicht fügen Sie alle Buchstaben, die mit jedem emoji. Ich habe auch versucht mit einem Matcher
und ein Pattern
, aber das hat nicht funktioniert entweder. Gibt es etwas falsch mit der regex oder bin ich etwas fehlt offensichtlich in meinem code?
Dies ist, wie ich den Brief:
sentence = "Jij staat op 10 ?"
String[] letters = sentence.split("");
Den letzten ? sollte erkannt werden und Hinzugefügt, um emoticon
Können Sie uns zeigen, mehr von dem code? Die Schleife scheint in Ordnung...
Könnten Sie ein konkretes Beispiel für den Wert von
emojis haben zwei Buchstaben, wenn ich richtig bin
Ich glaube nicht, Holen Sie sich Ihre Herangehensweise an alle. Haben Sie teilen Sie Ihre original-string in ein
Bearbeitet die Frage, um zu zeigen, wie ich den Brief Jungs!
Könnten Sie ein konkretes Beispiel für den Wert von
letters
Sie erwarten, zu entsprechen? Außerdem, was gibt Ihnen die zuversicht, dass die regex, die Sie gefunden haben, ist definitiv richtig und umfassend?emojis haben zwei Buchstaben, wenn ich richtig bin
Ich glaube nicht, Holen Sie sich Ihre Herangehensweise an alle. Haben Sie teilen Sie Ihre original-string in ein
String[]
, wo jedes element ist eine einzelne Zeichenkette, nur anwenden zu können-eine regex statt eines einfachen Java-numeric range-check?Bearbeitet die Frage, um zu zeigen, wie ich den Brief Jungs!
InformationsquelleAutor bdv | 2015-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint wie die emojis sind zwei Zeichen lang sein, aber mit
split("")
Sie die Spaltung zwischen den einzelnen Zeichen, so ist keiner dieser Buchstaben können Sie die emoji Sie suchen.Stattdessen könnten Sie versuchen, die Spaltung zwischen den Wörtern:
Aber natürlich wird miss emojis, die verbunden sind, um ein Wort oder Satzzeichen.
Alternativ können Sie nur verwenden Sie eine
Matcher
zufind
allegroup
im Satz entspricht der regex.Scheint zu funktionieren für mich (der zweiten Methode). Oder soll dies aus einem einzigen (zusammengesetzten) emoji?
nope zwei separate lieben.. Wie du das testen?
Tests mit
String sentence = "zing ??. It he";
(einfach kopiert aus deinem Kommentar), ist Ihr Muster, und dann den code beginnend mitMatcher
. Es gibt zwei emojis.danke, matcher gearbeitet!
InformationsquelleAutor tobias_k
Könnten Sie emoji4j Bibliothek. Folgendes sollte das Problem lösen.
InformationsquelleAutor Chaitanya
Können Sie Charakter Klasse zu ermitteln, wird der Buchstabe ist Teil des surrogate-pair-Mädchen. Es gibt einige hilfreiche Methoden im Umgang mit ersatzpaaren emoji-Symbole, zum Beispiel:
"☠" ist nicht ein emoji. Es ist nur ein symbol, aber das system zeigt es, wie ein emoji. Der Wert ist 9760.
InformationsquelleAutor user2474486
Diese Funktion habe ich erstellt, überprüft, ob die angegebene Zeichenfolge besteht nur aus emojis.
in anderen Worten, wenn der String enthält alle Zeichen nicht in der Regex, wird false zurückgegeben.
Beispiel der Umsetzung:
gegeben ist eine Funktion, läuft auf einen string (der nur emojis) und zurück, die Anzahl der emojis. (mit Hilfe von anderen Antworten, die ich hier gefunden auf StackOverFlow).
InformationsquelleAutor Noamaw
Versuchen, dieses Projekt einfach-emoji-4j
Kompatibel mit Emoji 12.0 (2018.10.15)
Einfach mit:
InformationsquelleAutor liheyuan
Es ist zu Bedenken, dass Java-code geschrieben werden kann in Unicode. Damit Sie kann nur:
Obwohl finden Sie unter: Sollte der Quellcode gespeichert werden im format UTF-8 für die Diskussion auf, ob das ist eine gute Idee.
Können Sie split ein String in Unicode-codepoints in Java 8 mit
String.codePoints()
gibt eineIntStream
. Das bedeutet, dass Sie etwas tun können, wie:... druckt ...
Natürlich, wenn Sie es vorziehen, nicht zu haben, wörtliche unicode-Zeichen in Ihrem code, können Sie nur Nummern in Ihrem set:
Aufschlussreich......
InformationsquelleAutor slim