जावा स्ट्रिंग्स से Remove, ✅, ✈, 🔥 और ऐसे अन्य इमोजी / चित्र / संकेत निकालें


192

मेरे पास सभी प्रकार के अलग-अलग इमोजी / चित्र / संकेत के साथ कुछ तार हैं।

सभी तार अंग्रेजी में नहीं हैं - उनमें से कुछ अन्य गैर-लैटिन भाषाओं में हैं, उदाहरण के लिए:

▓ railway??
→ Cats and dogs
I'm on 🔥
Apples ⚛ 
✅ Vi sign
♛ I'm the king ♛ 
Corée ♦ du Nord ☁  (French)
 gjør at både ◄╗ (Norwegian)
Star me ★
Star ⭐ once more
早上好 ♛ (Chinese)
Καλημέρα ✂ (Greek)
another ✓ sign ✓
добрай раніцы ✪ (Belarus)
◄ शुभ प्रभात ◄ (Hindi)
✪ ✰ ❈ ❧ Let's get together ★. We shall meet at 12/10/2018 10:00 AM at Tony's.❉

... और इनमें से कई और।

मैं इन सभी चिन्हों / चित्रों से छुटकारा पाना चाहता हूँ और विभिन्न भाषाओं में केवल अक्षरों (और विराम चिह्न) को रखना चाहता हूँ।

मैंने EmojiParser लाइब्रेरी का उपयोग करके संकेतों को साफ करने की कोशिश की :

String withoutEmojis = EmojiParser.removeAllEmojis(input);

समस्या यह है कि EmojiParser अधिकांश संकेतों को हटाने में सक्षम नहीं है। That चिन्ह केवल एक ही है जिसे मैंने अब तक पाया है कि यह हटा दिया गया है। अन्य संकेत जैसे signs ✰ ★ ✰ ✪ ✂ ❋ ✪ ✪ ✿ ♛ ♛। को हटाया नहीं जाता है।

क्या इनपुट स्ट्रिंग्स से इन सभी संकेतों को हटाने और विभिन्न भाषाओं में केवल पत्र और विराम चिह्न रखने का एक तरीका है ?


91
आप क्या रखना चाहते हैं?
YCF_L

31
दो समस्याएं: इमोजीपैरसर क्या है? यह एक मानक पुस्तकालय का हिस्सा नहीं लगता है, इसलिए यह उल्लेख बहुत उपयोगी नहीं है। और क्या अक्षर वास्तव में आप फ़िल्टर करना चाहते हैं? आप कहते हैं "इस तरह के कई और अधिक", लेकिन कई चरित्र समूह और परिवार हैं। हमें आपके मानदंड के बारे में अधिक जानकारी होनी चाहिए।
मार्कस फिशर

129
IDK इसके पीछे आपकी मंशा क्या है, लेकिन अगर यह बहुत ज्यादा टेक्स्ट इनपुट को फिल्टर करता है: नहीं। मैं थक-हारकर ज़-ज़-ज़ेड का उपयोग करने के लिए मजबूर हो रहा हूँ। मुझे अपनी मूल भाषा, या इमोजीस, या जो कुछ भी मैं चाहता हूं, में लिखूं। क्या मैं वास्तव में चाहता हूं कि मुझे कैलेंडर नियुक्ति "calendar calendar?" कहा जाए? हां हां मैं करता हूँ। अब मेरे रास्ते से हट जाओ।
अलेक्जेंडर - मोनिका

19
कृपया स्पष्ट करें कि आप वास्तव में क्या रखना और हटाना चाहते हैं। सतह पर यह प्रश्न स्पष्ट प्रतीत होता है, लेकिन यूनिकोड की जटिलता के कारण यह नहीं है और इस कारण यह एक अच्छा उत्तर प्रदान करना असंभव है।
ओलेग

12
जब यह कम से कम आपके उदाहरण में से एक को नष्ट कर देना चाहता है तो यह एक अजीब बात लगती है?
ईवे

जवाबों:


290

कुछ तत्वों को ब्लैकलिस्ट करने के बजाय, आप उन पात्रों की श्वेत सूची बनाने के बारे में जो आप रखना चाहते हैं? इस तरह आपको हर नए इमोजी के बारे में चिंता करने की ज़रूरत नहीं है।

String characterFilter = "[^\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\p{Cs}\\s]";
String emotionless = aString.replaceAll(characterFilter,"");

इसलिए:

  • [\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\p{Cs}\\s]सभी न्यूमेरिक ( \\p{N}), अक्षर ( \\p{L}), मार्क ( \\p{M}), विराम चिह्न ( \\p{P}), व्हाट्सएप / सेपरेटर ( \\p{Z}), अन्य फॉर्मेटिंग ( \\p{Cf}) और U+FFFFयूनिकोड ( \\p{Cs}) और न्यूलाइन ( \\s) वर्णों के ऊपर के अन्य वर्णों का प्रतिनिधित्व करने वाली एक सीमा है । \\p{L}विशेष रूप से अन्य अक्षर जैसे कि सिरिलिक, लैटिन, कांजी आदि से वर्ण शामिल हैं।
  • ^रेगुलर एक्सप्रेशन से वर्ण सेट में मैच को नकारता।

उदाहरण:

String str = "hello world _# 皆さん、こんにちは! 私はジョンと申します。🔥";
System.out.print(str.replaceAll("[^\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\p{Cs}\\s]",""));
// Output:
//   "hello world _# 皆さん、こんにちは! 私はジョンと申します。"

यदि आपको अधिक जानकारी की आवश्यकता है, तो regexes के लिए जावा प्रलेखन देखें


4
ASCII अल्फ़ान्यूमेरिक वर्णों और इमोजी के बीच स्पष्ट अंतर उच्चारण और गैर-लैटिन अक्षर हैं। इन पर ओपी के इनपुट के बिना हम यह नहीं जानते कि यह एक अच्छा जवाब है (मेरी DV हालांकि नहीं)
क्रिस एच।

4
हाँ, मैं उत्सुक हूँ कि ऐसा क्यों हो सकता है। दूसरा मैंने यह प्रश्न देखा, एक नियमित अभिव्यक्ति निरपेक्ष पहली चीज़ थी जो दिमाग में आई (PS जब से वह मानक पात्रों और विराम चिह्नों की तलाश कर रहा है, मैं कुछ का उपयोग करूँगा, [^\w\^\-\[\]\.!@#$%&*\(\)/+'":;~?,]लेकिन मैं सिर्फ इतना मजबूत हूं और सभी विशिष्ट वर्णों को इकट्ठा करने की कोशिश कर रहा हूं 't प्रतीकों)। अपवित्र क्योंकि यह निश्चित रूप से एक संभावित समाधान है। यदि वह कुछ अन्य भाषा पात्रों को जोड़ना चाहता है, तो वह उन्हें आवश्यकतानुसार अभिव्यक्ति में जोड़ सकता है।
क्रिस

15
@ क्रिस महान विराम चिह्न रेगेक्स उदाहरण, कुछ मामलों के लिए मेरे लिए पर्याप्त व्यापक दिखता है। इसके अलावा, शायद लोग पूरे उत्तर को नहीं पढ़ रहे हैं - जैसा कि उत्तर के तल पर कहा गया है, p{L}गैर-अंग्रेजी वर्णमाला वर्णों को संभालता है । मुझे आशा है कि यह समझ गया है कि मैं अपने उत्तर में हर गैर-अंग्रेजी वर्णमाला के माध्यम से बड़े पैमाने पर सूचीबद्ध नहीं कर सकता क्योंकि यह अव्यवहारिक रूप से क्रियात्मक होगा।
निक बल

12
यह। कृपया और धन्यवाद। उन चरित्रों को मना करने की कोशिश न करें जो आपको समस्याएं पैदा करते हैं; तय करें कि आप किन वर्णों की अनुमति देते हैं और उन्हें एनकोड करते हैं। फिर आपके कोड में परीक्षण मामलों का एक स्पष्ट रूप से परिभाषित सेट है।
jpmc26

2
मैं सुझाव देता हूं "[^\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\s]"। यह सामान्य श्रेणियों पत्र, मार्क, संख्या, विराम चिह्न, विभाजक, और "अन्य, प्रारूप", साथ ही टैब और newline जैसे व्हाट्सएप वर्णों की अनुमति देता है।
सीन वान गॉर्ड

81

मैं जावा में सुपर नहीं हूं, इसलिए मैं उदाहरण कोड इनलाइन लिखने की कोशिश नहीं करूंगा, लेकिन जिस तरह से मैं यह करूंगा वह यह जांचना है कि यूनिकोड प्रत्येक चरित्र की "सामान्य श्रेणी" को क्या कहता है। कुछ अक्षर और विराम चिह्न श्रेणियां हैं।

किसी वर्ण की सामान्य श्रेणी ज्ञात करने के लिए आप Character.getType का उपयोग कर सकते हैं । आपको संभवतः उन पात्रों को बनाए रखना चाहिए जो इन सामान्य श्रेणियों में आते हैं:

COMBINING_SPACING_MARK
CONNECTOR_PUNCTUATION
CURRENCY_SYMBOL
DASH_PUNCTUATION
DECIMAL_DIGIT_NUMBER
ENCLOSING_MARK
END_PUNCTUATION
FINAL_QUOTE_PUNCTUATION
FORMAT
INITIAL_QUOTE_PUNCTUATION
LETTER_NUMBER
LINE_SEPARATOR
LOWERCASE_LETTER
MATH_SYMBOL
MODIFIER_LETTER
MODIFIER_SYMBOL
NON_SPACING_MARK
OTHER_LETTER
OTHER_NUMBER
OTHER_PUNCTUATION
PARAGRAPH_SEPARATOR
SPACE_SEPARATOR
START_PUNCTUATION
TITLECASE_LETTER
UPPERCASE_LETTER

(आपके द्वारा सूचीबद्ध सभी वर्ण विशेष रूप से सामान्य श्रेणी को हटाना चाहते हैं OTHER_SYMBOL, जिन्हें मैंने उपरोक्त श्रेणी श्वेतसूची में शामिल नहीं किया है।)


1
FORMAT (Cf) को भी संरक्षित किया जाना चाहिए; इसमें क्लस्टरिंग और दिशात्मक ओवरराइड शामिल हैं, जिसके बिना कुछ भाषाओं में कुछ (असामान्य, संयुक्त) शब्दों को लिखना असंभव है।
zwol

@zwol विवरण के लिए धन्यवाद! मैं इसे सूची में जोड़ दूंगा।
डेनियल वैगनर

29
यह भविष्य का प्रमाण है। यूनिकोड मानक के लिए भविष्य के अपडेट के बावजूद, उनकी श्रेणियों के आधार पर पात्रों को शामिल / बाहर करने का मतलब है कि पात्रों का व्यक्तिगत पार्स करना और किसी सूची का रखरखाव अनावश्यक है। बेशक, विभिन्न भाषाओं (जैसे चीनी, अरबी आदि) में पाठ का सरसरी परीक्षण यह सुनिश्चित करने के लिए किया जाना चाहिए कि फ़िल्टर की गई श्रेणियां लक्ष्य वातावरण में अनुमति देने के लिए आवश्यक पाठ से मेल खाती हैं।
CJBS

3
ओह, एक और गोचर मुझे कल के बारे में सोचना चाहिए था: TAB, CR, और LF सभी सामान्य श्रेणी Cc (Java का नियंत्रण) हैं। उन लोगों को विशेष रूप से श्वेतसूची में रखने की आवश्यकता है, क्योंकि आप लगभग निश्चित रूप से अधिकांश विरासत नियंत्रण पात्रों को अनुमति नहीं देना चाहते हैं।
zwol

@CJBS इस दृष्टिकोण के साथ समस्या यह है कि इसे केवल आंशिक रूप से जावा में लागू किया गया है। उदाहरण के लिए, Character.getType()आपको यह नहीं बताएगा कि आपका char(या intकोड बिंदु चूंकि विधि अतिभारित है), कहते हैं, एक इमोटिकॉन, या एक संगीत प्रतीक, या एक इमोजी चरित्र, आदि। यदि आपके पास एक साधारण उपयोग का मामला है तो यह ठीक हो सकता है। इस रास्ते पर जाने के लिए - यह निश्चित रूप से एक सुरुचिपूर्ण दृष्टिकोण है जिसे समझना आसान है - लेकिन ध्यान रखें कि यदि आवश्यकताएं बदल जाती हैं तो यह टूट सकता है।
स्कोमीसा

47

पूर्ण इमोजी सूची के आधार पर , v11.0 आपके पास हटाने के लिए 1644 अलग-अलग यूनिकोड कोड बिंदु हैं। उदाहरण के लिए इस सूची में है U+2705

इमोजीस की पूरी सूची होने से आपको कोड पॉइंट्स का उपयोग करके उन्हें फ़िल्टर करना होगा । एकल पर इरेटेट करना charया byteएकल कोड बिंदु के रूप में काम नहीं करना कई बाइट्स को फैला सकता है। क्योंकि जावा UTF-16 इमोजी का उपयोग करता है, आमतौर पर दो charएस लगेगा ।

String input = "ab✅cd";
for (int i = 0; i < input.length();) {
  int cp = input.codePointAt(i);
  // filter out if matches
  i += Character.charCount(cp); 
}

यूनिकोड कोड बिंदु U+2705से जावा तक मैपिंग intसीधी है:

int viSign = 0x2705;

या जब से यूनिकोड स्ट्रिंग्स का जावा समर्थन करता है:

int viSign = "✅".codePointAt(0);

28
बहुत उपयोगी सूची। दिलचस्प है कि रिमोजी नामक एक विधि के साथ EmojiParser नामक कुछ इन्हें संभालने में विफल रहता है ... :-)
TJ Crowder

7
@ बर्गी: नहीं, चूंकि input.codePointAtकेवल अधिकतम 2 अक्षर ही दिखते हैं, जो एक निरंतर ऊपरी सीमा है। इसके अलावा (नए जोड़े गए) i += Character.charCount(cp)उन सभी पात्रों को छोड़ देता है जिनका input.codePointAtनिरीक्षण किया गया था (कुछ कोने के मामलों में माइनस 1)।
डेविड फ़ॉस्टर

6
@ OlivierGrégoire: कोडपॉइंट String.chars()नहीं वर्णों पर धाराएँ। उसके लिए एक अलग विधि String.codePoints()है।
डेविड फ़ॉस्टर

5
यहां कम से कम दो समस्याएं हैं: आप इमोजीस की "बंद" सूची का उपयोग कर रहे हैं, इसलिए हर साल आपको इसे विस्तारित करना होगा (लेकिन यह आसानी से सॉल्वैबाइल नहीं है), और यह कोड शायद कोडपॉइंट अनुक्रमों के साथ सही ढंग से काम नहीं करेगा (उदाहरण के लिए देखें unicode.org/Public/emoji/11.0/emoji-zwj-fterences.txt )
xanatos

49
यह मूल रूप से EmojiParser द्वारा उपयोग किया जाने वाला एक ही दृष्टिकोण है और यह जल्द ही उसी कारण से विफल हो जाएगा। नई इमोजी को अक्सर यूनिकोड चरित्र डेटाबेस में जोड़ा जाता है और यदि आप एक नकारात्मक नियम सेट के लिए वर्तमान में परिभाषित 1644 इमोजी का उपयोग करके एक समाधान लागू कर रहे हैं, तो नए इमोजी उपलब्ध होते ही लागू हो जाएगा।
जर्नबजो

20

ICU4J आपका मित्र है।

UCharacter.hasBinaryProperty(UProperty.EMOJI);

याद रखें कि icu4j के अपने संस्करण को अद्यतित रखें और ध्यान दें कि यह केवल आधिकारिक यूनिकोड इमोजी को फ़िल्टर करेगा, न कि प्रतीक पात्रों को। वांछित के रूप में अन्य चरित्र प्रकार छानने के साथ गठबंधन।

अधिक जानकारी: http://icu-project.org/apiref/icu4j/com/ibm/icu/lang/UProperty.html#EMOJI


1
जब तक जावा को इमोजी बाइनरी प्रॉपर्टी को शामिल करने के लिए अपडेट नहीं किया जाता है, मुझे लगता है कि यह एक अच्छा समाधान होगा। लाइब्रेरी को नए जोड़े गए कोडपॉइंट्स के लिए अक्सर अद्यतन करने की आवश्यकता होती है, हालांकि।
न्हठ्ठ

10

मैंने नीचे कुछ उदाहरण दिए, और सोचा कि लैटिन पर्याप्त है, लेकिन ...

क्या इनपुट स्ट्रिंग से इन सभी संकेतों को हटाने और विभिन्न भाषाओं में केवल अक्षरों और विराम चिह्न रखने का एक तरीका है?

संपादन के बाद, Character.getTypeविधि का उपयोग करके एक नया समाधान विकसित किया , और यह इस पर सबसे अच्छा शॉट प्रतीत होता है।

package zmarcos.emoji;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class TestEmoji {

    public static void main(String[] args) {
        String[] arr = {"Remove ✅, 🔥, ✈ , ♛ and other such signs from Java string",
            "→ Cats and dogs",
            "I'm on 🔥",
            "Apples ⚛ ",
            "✅ Vi sign",
            "♛ I'm the king ♛ ",
            "Star me ★",
            "Star ⭐ once more",
            "早上好 ♛",
            "Καλημέρα ✂"};
        System.out.println("---only letters and spaces alike---\n");
        for (String input : arr) {
            int[] filtered = input.codePoints().filter((cp) -> Character.isLetter(cp) || Character.isWhitespace(cp)).toArray();
            String result = new String(filtered, 0, filtered.length);
            System.out.println(input);
            System.out.println(result);
        }

        System.out.println("\n---unicode blocks white---\n");
        Set<Character.UnicodeBlock> whiteList = new HashSet<>();
        whiteList.add(Character.UnicodeBlock.BASIC_LATIN);
        for (String input : arr) {
            int[] filtered = input.codePoints().filter((cp) -> whiteList.contains(Character.UnicodeBlock.of(cp))).toArray();
            String result = new String(filtered, 0, filtered.length);
            System.out.println(input);
            System.out.println(result);
        }

        System.out.println("\n---unicode blocks black---\n");
        Set<Character.UnicodeBlock> blackList = new HashSet<>();        
        blackList.add(Character.UnicodeBlock.EMOTICONS);
        blackList.add(Character.UnicodeBlock.MISCELLANEOUS_TECHNICAL);
        blackList.add(Character.UnicodeBlock.MISCELLANEOUS_SYMBOLS);
        blackList.add(Character.UnicodeBlock.MISCELLANEOUS_SYMBOLS_AND_ARROWS);
        blackList.add(Character.UnicodeBlock.MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS);
        blackList.add(Character.UnicodeBlock.ALCHEMICAL_SYMBOLS);
        blackList.add(Character.UnicodeBlock.TRANSPORT_AND_MAP_SYMBOLS);
        blackList.add(Character.UnicodeBlock.GEOMETRIC_SHAPES);
        blackList.add(Character.UnicodeBlock.DINGBATS);
        for (String input : arr) {
            int[] filtered = input.codePoints().filter((cp) -> !blackList.contains(Character.UnicodeBlock.of(cp))).toArray();
            String result = new String(filtered, 0, filtered.length);
            System.out.println(input);
            System.out.println(result);
        }
        System.out.println("\n---category---\n");
        int[] category = {Character.COMBINING_SPACING_MARK, Character.COMBINING_SPACING_MARK, Character.CONNECTOR_PUNCTUATION, /*Character.CONTROL,*/ Character.CURRENCY_SYMBOL,
            Character.DASH_PUNCTUATION, Character.DECIMAL_DIGIT_NUMBER, Character.ENCLOSING_MARK, Character.END_PUNCTUATION, Character.FINAL_QUOTE_PUNCTUATION,
            /*Character.FORMAT,*/ Character.INITIAL_QUOTE_PUNCTUATION, Character.LETTER_NUMBER, Character.LINE_SEPARATOR, Character.LOWERCASE_LETTER,
            /*Character.MATH_SYMBOL,*/ Character.MODIFIER_LETTER, /*Character.MODIFIER_SYMBOL,*/ Character.NON_SPACING_MARK, Character.OTHER_LETTER, Character.OTHER_NUMBER,
            Character.OTHER_PUNCTUATION, /*Character.OTHER_SYMBOL,*/ Character.PARAGRAPH_SEPARATOR, /*Character.PRIVATE_USE,*/
            Character.SPACE_SEPARATOR, Character.START_PUNCTUATION, /*Character.SURROGATE,*/ Character.TITLECASE_LETTER, /*Character.UNASSIGNED,*/ Character.UPPERCASE_LETTER};
        Arrays.sort(category);
        for (String input : arr) {
            int[] filtered = input.codePoints().filter((cp) -> Arrays.binarySearch(category, Character.getType(cp)) >= 0).toArray();
            String result = new String(filtered, 0, filtered.length);
            System.out.println(input);
            System.out.println(result);
        }
    }

}

आउटपुट:

---only letters and spaces alike---

Remove ✅, 🔥,  ,  and other such signs from Java string
Remove      and other such signs from Java string
 Cats and dogs
 Cats and dogs
I'm on 🔥
Im on 
Apples  
Apples  
 Vi sign
 Vi sign
 I'm the king  
 Im the king  
Star me 
Star me 
Star  once more
Star  once more
早上好 
早上好 
Καλημέρα 
Καλημέρα 

---unicode blocks white---

Remove ✅, 🔥,  ,  and other such signs from Java string
Remove , ,  ,  and other such signs from Java string
 Cats and dogs
 Cats and dogs
I'm on 🔥
I'm on 
Apples  
Apples  
 Vi sign
 Vi sign
 I'm the king  
 I'm the king  
Star me 
Star me 
Star  once more
Star  once more
早上好 

Καλημέρα 


---unicode blocks black---

Remove ✅, 🔥,  ,  and other such signs from Java string
Remove , ,  ,  and other such signs from Java string
 Cats and dogs
 Cats and dogs
I'm on 🔥
I'm on 
Apples  
Apples  
 Vi sign
 Vi sign
 I'm the king  
 I'm the king  
Star me 
Star me 
Star  once more
Star  once more
早上好 
早上好 
Καλημέρα 
Καλημέρα 

---category---

Remove ✅, 🔥,  ,  and other such signs from Java string
Remove , ,  ,  and other such signs from Java string
 Cats and dogs
 Cats and dogs
I'm on 🔥
I'm on 
Apples  
Apples  
 Vi sign
 Vi sign
 I'm the king  
 I'm the king  
Star me 
Star me 
Star  once more
Star  once more
早上好 
早上好 
Καλημέρα 
Καλημέρα 

कोड स्ट्रिंग को कोड-पॉइंट पर स्ट्रीम करके काम करता है। फिर वर्णों को एक intसरणी में फ़िल्टर करने के लिए लैम्ब्डा का उपयोग करते हैं , फिर हम सरणी को स्ट्रिंग में परिवर्तित करते हैं।

पत्र और रिक्त स्थान फिल्टर करने के लिए चरित्र के तरीकों, विराम चिह्न के साथ अच्छा नहीं का उपयोग कर प्रयोग कर रहे हैं। असफल प्रयास

यूनिकोड ब्लॉक सफेद फिल्टर यूनिकोड ब्लॉक प्रोग्रामर निर्दिष्ट का उपयोग कर के रूप में अनुमति दी। असफल प्रयास

यूनिकोड ब्लॉक काला फिल्टर यूनिकोड ब्लॉक प्रोग्रामर निर्दिष्ट रूप में अनुमति नहीं इस्तेमाल करते हैं। असफल प्रयास

श्रेणी फिल्टर स्थिर पद्धति का उपयोग करके Character.getType। प्रोग्रामर categoryसरणी में परिभाषित कर सकता है कि किस प्रकार की अनुमति है। काम करता है 😨😱😰😲😀।


import java.lang.Character.UnicodeBlock;, फिर Character.UnicodeBlock-> UnicodeBlock
बर्नहार्ड बार्कर

आपके सभी तरीके परीक्षणों में विफल रहे।
ओलेग

@ नहीं, फिर से देखें, white listउदाहरण।
मार्कोस ज़ोलनोव्स्की

मेरी आँखों या मेरी निगरानी में कुछ गड़बड़ होना चाहिए, मैं नहीं देख सकता :04 Κ और wrongαλημέρα
ओलेग

4
ध्यान दें कि जावा भाषा नए यूनिकोड संस्करणों का थोड़ा धीमा समर्थन कर रही है ... उदाहरण के लिए जावा 10 केवल यूनिकोड 8 का समर्थन करता है (इसलिए इसके चरित्र वर्ग केवल यूनिकोड 8 वर्णों का वर्णन करते हैं) ... तो कई इमोजीज़ मौजूद नहीं हैं ( डॉक्स देखें ) .com / javase / 10 / docs / api / java / lang / Character.html , चरित्र की जानकारी यूनिकोड मानक, संस्करण
8.0.0


-1

RM-Emoji नामक jQuery प्लगइन का उपयोग करें। यहां देखिए यह कैसे काम करता है:

$('#text').remove('emoji').fast()

यह तेज़ मोड है जो कुछ इमोजीस को याद कर सकता है क्योंकि यह टेक्स्ट में इमोजी खोजने के लिए अनुमानी एल्गोरिदम का उपयोग करता है। .full()पूरे स्ट्रिंग को स्कैन करने और गारंटीकृत सभी इमोजी को हटाने के लिए विधि का उपयोग करें ।


5
सवाल जावा में था, इसलिए यहां एक jQuery प्लगइन प्रासंगिक नहीं है।
रियोरियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.