জাভা স্ট্রিং থেকে ✅, 🔥, ✈, ♛ এবং এই জাতীয় অন্যান্য ইমোজি / চিত্র / চিহ্নগুলি সরান


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.❉

... এবং এই আরও অনেক।

আমি এই সমস্ত চিহ্ন / চিত্রগুলি থেকে মুক্তি পেতে এবং বিভিন্ন বর্ণগুলিতে কেবল অক্ষরগুলি (এবং বিরামচিহ্নগুলি) রাখতে চাই।

আমি ইমোজি পার্সার লাইব্রেরি ব্যবহার করে লক্ষণগুলি পরিষ্কার করার চেষ্টা করেছি :

String withoutEmojis = EmojiParser.removeAllEmojis(input);

সমস্যাটি হ'ল ইমোজিপার্সার বেশিরভাগ লক্ষণ সরাতে সক্ষম নন। এখনও অবধি found চিহ্নটি আমি খুঁজে পেয়েছি এটি সরিয়ে গেছে। অন্যান্য চিহ্ন যেমন ✪ ❉ ★ ✰ ❈ ❧ ✂ ❋ ⓡ ✿ ✿ ♛ 🔥 সরানো হয় না।

ইনপুট স্ট্রিং থেকে এই সমস্ত লক্ষণগুলি সরানোর এবং কেবল ভিন্ন ভাষায় কেবলমাত্র অক্ষর এবং বিরামচিহ্নগুলি রাখার কোনও উপায় আছে ?


91
আপনি কি রাখতে চান?
YCF_L

31
দুটি সমস্যা: ইমোজিপার্সার কী? প্রমিত লাইব্রেরির অংশ বলে মনে হচ্ছে না, সুতরাং এই উল্লেখটি খুব বেশি সহায়ক নয়। এবং কোন চরিত্রগুলি আপনি ফিল্টার করতে চান? আপনি "এই ধরণের আরও অনেকগুলি" বলছেন তবে অনেকগুলি চরিত্রের গোষ্ঠী এবং পরিবার রয়েছে। আপনার মানদণ্ড সম্পর্কে আমাদের আরও জানতে হবে।
মার্কাস ফিশার

129
এর পিছনে আপনার অনুপ্রেরণাগুলি কী তা আইডিকে করুন, তবে এটি খুব ফিল্টার পাঠ্য ইনপুট থাকলেও না: আমি এ-জেডএ-জেড ব্যবহার করতে বাধ্য হয়ে ক্লান্ত হয়ে পড়েছি। আমাকে আমার মাতৃভাষায়, বা ইমোজিগুলিতে বা আমি যা চাই তা লিখতে দিন। আমি কি সত্যিই আমার ক্যালেন্ডারের অ্যাপয়েন্টমেন্টটিকে "🤦🏻‍♂️" বলা হোক? হ্যা, হ্যা, আমি করি. এখন আমার পথ থেকে সরে যাও।
আলেকজান্ডার - মনিকাকে ২st

19
আপনি ঠিক কী রাখতে এবং সরাতে চান তা দয়া করে পরিষ্কার করুন। পৃষ্ঠতলে প্রশ্নটি স্পষ্ট বলে মনে হয় তবে ইউনিকোডের জটিলতার কারণে এটি হয় না এবং কারণেই এটির একটি ভাল উত্তর দেওয়া অসম্ভব।
ওলেগ

12
এটি যখন আপনার কমপক্ষে উদাহরণের কোনও একটিটির অর্থটি নষ্ট করে, তখন এটি করা একটি অদ্ভুত জিনিস বলে মনে হচ্ছে?
veভী

উত্তর:


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}
  • ^Regex অক্ষরসমষ্ঠিতে ম্যাচ negates।

উদাহরণ:

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 _# 皆さん、こんにちは! 私はジョンと申します。"

আপনার যদি আরও তথ্যের প্রয়োজন হয় তবে রেজিজেসগুলির জন্য জাভা ডকুমেন্টেশন দেখুন।


4
ASCII বর্ণানুক্রমিক অক্ষর এবং ইমোজিগুলির মধ্যে সুস্পষ্ট ব্যবধানটি বর্ণিত এবং নন-লাতিন অক্ষর। এগুলিতে ওপি'র ইনপুট ব্যতীত আমরা জানি না এটি একটি ভাল উত্তর কিনা (যদিও আমার ডিভি নয়)
ক্রিস এইচ

4
হ্যাঁ আমি কেন কৌতূহল বোধ করি কেন এটি সম্ভবত কমিয়ে দেওয়া হবে। দ্বিতীয়টি আমি এই প্রশ্নটি দেখেছি, একটি নিয়মিত ভাব ছিল একেবারে প্রথম জিনিস যা মনে আসছিল (পিএস যেহেতু তিনি স্ট্যান্ডার্ড চরিত্র এবং বিরামচিহ্নগুলি সন্ধান করছেন, আমি [^\w\^\-\[\]\.!@#$%&*\(\)/+'":;~?,]এর মতো কিছু ব্যবহার করছিলাম তবে এটি কেবল আমার দৃust় এবং আমি সমস্ত আদর্শ চরিত্রগুলি সংগ্রহ করার চেষ্টা করছি) 'টি প্রতীক)। উত্সাহিত কারণ এটি অবশ্যই একটি সম্ভাব্য সমাধান। তিনি যদি অন্য কোনও ভাষার অক্ষর যুক্ত করতে চান তবে তিনি সেগুলি প্রয়োজনীয় হিসাবে প্রকাশের সাথে যুক্ত করতে পারেন।
ক্রিস

15
@ ক্রিসের বিরামচিহ্ন পুনঃসূত্র উদাহরণ, কিছু ক্ষেত্রে আমার কাছে যথেষ্ট বিস্তৃত দেখাচ্ছে। এছাড়াও সম্ভবত লোকেরা তখন পুরো উত্তরটি পড়ছে না - উত্তরের নীচে বর্ণিত হিসাবে, p{L}অ-ইংরাজী বর্ণমালা অক্ষর পরিচালনা করে । আমি আশা করি এটি বুঝতে পেরেছি যে আমি আমার উত্তরে প্রতিটি অ-ইংরাজী বর্ণমালার মাধ্যমে বৃহত্তর তালিকা করতে পারি না কারণ এটি ব্যবহারিকরূপে ভারবজ হবে।
নিক বুল

12
এই. অনুগ্রহ করে এবং ধন্যবাদ. এমন চরিত্রগুলি নিষিদ্ধ করার চেষ্টা করবেন না যা আপনাকে সমস্যার কারণ হতে পারে; আপনি কোন অক্ষরকে অনুমতি দিন এবং এটিকে এনকোড করুন তা স্থির করুন। তারপরে আপনার কোডটিতে পরীক্ষার কেসগুলির একটি পরিষ্কার সংজ্ঞা দেওয়া আছে।
jpmc26

2
আমার পরামর্শ "[^\\p{L}\\p{M}\\p{N}\\p{P}\\p{Z}\\p{Cf}\\s]"। এটি অক্ষর, চিহ্ন, সংখ্যা, বিরামচিহ্ন, পৃথককারী এবং "অন্যান্য, ফর্ম্যাট", পাশাপাশি ট্যাব এবং নিউলাইনের মতো সাদা স্থানের অক্ষরগুলিকে সাধারণ বিভাগগুলিতে অনুমতি দেয়।
শান ভ্যান গর্ডার

81

আমি জাভাতে সুপার নই, সুতরাং আমি উদাহরণ কোড ইনলাইন লেখার চেষ্টা করব না, তবে আমি যেভাবে এটি করব তা হ'ল ইউনিকোডটি প্রতিটি চরিত্রের "সাধারণ বিভাগ" বলে calls একটি দম্পতি চিঠি এবং বিরামচিহ্ন বিভাগ আছে।

প্রদত্ত চরিত্রের সাধারণ বিভাগটি খুঁজে পেতে আপনি ক্যারেক্টার.গেটটাইপ ব্যবহার করতে পারেন । আপনি সম্ভবত এই সাধারণ বিভাগগুলিতে পড়ে সেই অক্ষরগুলি ধরে রাখতে হবে:

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
ফর্ম্যাট (সিএফ) এছাড়াও সংরক্ষণ করা উচিত; এর মধ্যে ক্লাস্টারিং এবং নির্দেশমূলক ওভাররাইডগুলি অন্তর্ভুক্ত রয়েছে, যা ছাড়া কিছু ভাষায় নির্দিষ্ট (অস্বাভাবিক, স্বীকৃত) শব্দগুলি লেখা অসম্ভব।
zwol

@zwol বিশদ জন্য ধন্যবাদ! আমি এটিকে তালিকায় যুক্ত করব।
ড্যানিয়েল ওয়াগনার

29
এটিই ভবিষ্যতের প্রুফ উত্তর। ইউনিকোড স্ট্যান্ডার্ডে ভবিষ্যতের আপডেটগুলি নির্বিশেষে, তাদের বিভাগগুলির উপর ভিত্তি করে অক্ষরগুলি অন্তর্ভুক্ত / বাদ দেওয়া মানে স্বতন্ত্র অক্ষরের পার্সিং এবং তালিকার রক্ষণাবেক্ষণ অপ্রয়োজনীয়। অবশ্যই, ফিল্টার করা বিভাগগুলি লক্ষ্য পরিবেশে অনুমতি দেওয়ার জন্য প্রয়োজনীয় পাঠ্যের সাথে মেলে কিনা তা নিশ্চিত করার জন্য বিভিন্ন ভাষায় পাঠ্যগুলির উদাসীন পরীক্ষা করা উচিত (উদাহরণস্বরূপ চাইনিজ, আরবি ইত্যাদি) should
সিজেবিএস

3
ওহ, গতকাল আমার আরও একটি গ্যাচা চিন্তা করা উচিত: ট্যাব, সিআর এবং এলএফ হ'ল সমস্ত সাধারণ বিভাগের সিসি (জাভার নিয়ন্ত্রণ)। এগুলিকে বিশেষভাবে শ্বেত তালিকাভুক্ত করা দরকার, যেহেতু আপনি প্রায়শই সম্ভবত বেশিরভাগ উত্তরাধিকার নিয়ন্ত্রণের অক্ষরের অনুমতি দিতে চান না
zwol

@ সিজেবিএস এই পদ্ধতির সমস্যাটি হচ্ছে এটি জাভাতে কেবল আংশিকভাবে প্রয়োগ করা হয়েছে। উদাহরণস্বরূপ, Character.getType()আপনার char(বা intপদ্ধতিটি ওভারলোড হওয়ার কারণে কোড পয়েন্ট), কোনও ইমোটিকন, বা একটি সংগীত প্রতীক, বা ইমোজি চরিত্র ইত্যাদি রয়েছে কিনা তা আপনাকে জানায় না যদি আপনার সাধারণ ব্যবহারের কেস থাকে তবে তা ঠিক আছে might এই পথে যেতে - এটি অবশ্যই একটি মার্জিত পদ্ধতির যা বোঝা সহজ - তবে সচেতন থাকুন যে প্রয়োজনীয়তাগুলি পরিবর্তিত হলে এটি ভেঙে যেতে পারে।
স্কোমিসা

47

পূর্ণ ইমোজি তালিকার উপর ভিত্তি করে , v11.0 আপনার অপসারণের জন্য 1644 টি আলাদা ইউনিকোড কোড পয়েন্ট রয়েছে। উদাহরণস্বরূপ এই তালিকায় রয়েছে U+2705

ইমোজিগুলির পুরো তালিকা থাকাতে আপনাকে কোড পয়েন্ট ব্যবহার করে এগুলি ফিল্টার করতে হবে । একক এর উপর ইরেট করা charবা byteএকক কোড পয়েন্ট হিসাবে কাজ করবে না একাধিক বাইট বিস্তৃত হতে পারে। যেহেতু জাভা ইউটিএফ -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
খুব দরকারী তালিকা। মজার বিষয় এই যে ইমোজিপার্সার নামক কোনও পদ্ধতিতে মুছে ফেলা সমস্ত ইমোজিসগুলি হ্যান্ডেল করতে ব্যর্থ হয় ... :-)
টিজে ক্রোডার

7
@ বার্গি: না, যেহেতু input.codePointAtকেবলমাত্র 2 টি পর্যন্ত অক্ষর রয়েছে যা বেশিরভাগ ধ্রুবক উপরের আবদ্ধ। এছাড়াও (নতুন যুক্ত হওয়া) পরিদর্শন করা i += Character.charCount(cp)সমস্ত অক্ষরগুলি এড়িয়ে যায় input.codePointAt(কোনও কোনও ক্ষেত্রে বিয়োগ 1)।
ডেভিড ফস্টারস্টার

6
@ অলিভিয়ারগ্রোওয়ের: কোডড পয়েন্ট String.chars()নয় এমন চরিত্রগুলিকে প্রবাহিত করে। তার String.codePoints()জন্য আলাদা পদ্ধতি রয়েছে ।
ডেভিড ফোরস্টার

5
এখানে কমপক্ষে দুটি সমস্যা রয়েছে: আপনি ইমোজিদের একটি "বদ্ধ" তালিকা ব্যবহার করছেন, সুতরাং প্রতি বছর আপনাকে এটি প্রসারিত করতে হবে (তবে এটি সম্ভবত সহজেই সমাধান করা যায় না), এবং কোডটি কোডপয়েন্টস সিকোয়েন্সগুলির সাথে সম্ভবত সঠিকভাবে কাজ করবে না (উদাহরণস্বরূপ unicode.org/Public/emoji/11.0/emoji-zwj-sequences.txt দেখুন )
xanatos

49
এটি মূলত ইমোজিপার্সার হিসাবে ব্যবহৃত একই পদ্ধতির এবং এটি শীঘ্রই একই কারণে ব্যর্থ হবে। ইউনিকোড চরিত্রের ডাটাবেসে নতুন ইমোজিগুলি তুলনামূলকভাবে ঘন ঘন যুক্ত করা হয় এবং আপনি যদি এখন একটি নেতিবাচক নিয়মের জন্য 1644 ইমো ব্যবহার করে সংজ্ঞাটি প্রয়োগ করছেন তবে নতুন ইমোজিগুলি উপলব্ধ হওয়ার সাথে সাথে বাস্তবায়ন ব্যর্থ হবে।
jarnbjo

20

আইসিইউ 4 জে আপনার বন্ধু।

UCharacter.hasBinaryProperty(UProperty.EMOJI);

আপনার আইসিইউ 4j এর সংস্করণটি আপ টু ডেট রাখুন এবং মনে রাখবেন এটি কেবল অফিশিয়াল ইউনিকোড ইমোজি ফিল্টার করবে, প্রতীক চিহ্নগুলি নয়। পছন্দসই অন্যান্য চরিত্রের ধরণের ফিল্টারিংয়ের সাথে একত্রিত করুন।

আরও তথ্য: http://icu-project.org/apiref/icu4j/com/ibm/icu/lang/UProperty.html#EMOJI


1
ইমোজি বাইনারি সম্পত্তি অন্তর্ভুক্ত করার জন্য জাভা আপডেট হওয়া অবধি আমার ধারণা এটি ভাল সমাধান হবে। যদিও নতুন যুক্ত হওয়া কোডপয়েন্টগুলির জন্য লাইব্রেরিটি প্রায়শই আপডেট করা দরকার।
nhahtdh

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অ্যারেতে সংজ্ঞায়িত করতে পারে কী ধরণের অনুমতি রয়েছে। WORKS 😨😱😰😲😀।


import java.lang.Character.UnicodeBlock;, তারপরে Character.UnicodeBlock-> UnicodeBlock
বার্নহার্ড বার্কার

আপনার সমস্ত উপায় পরীক্ষায় ব্যর্থ হয়েছে।
ওলেগ

@ ওলেগ নং, আবার দেখুন, white listউদাহরণ।
মার্কোস জোলোনস্কি

আমার চোখ বা আমার মনিটরের সাথে অবশ্যই কিছু ভুল হওয়া উচিত, আমি দেখতে পাচ্ছি না 早上 Καλημέρα এবং is
ওলেগ

4
নোট করুন যে জাভা ভাষাটি নতুন ইউনিকোড সংস্করণগুলিকে সামান্য সমর্থন করছে ... উদাহরণস্বরূপ জাভা 10 কেবলমাত্র ইউনিকোড 8 সমর্থন করে (সুতরাং এর চরিত্রের ক্লাসগুলি কেবল ইউনিকোড 8 টি অক্ষর বর্ণনা করে) ... এত ইমোজি উপস্থাপিত নয় ( ডকস.অরাকল দেখুন .কম / জাভাস / 10 / ডকস / এপি / জাভা / ল্যাং / ক্যারেক্টার এইচটিএমএল , চরিত্রের তথ্য ইউনিকোড স্ট্যান্ডার্ড, সংস্করণ 8.0.0 এর উপর ভিত্তি করে ))
xanatos


-1

আরএম-ইমোজি নামে একটি jQuery প্লাগইন ব্যবহার করুন। এখানে কিভাবে এটা কাজ করে:

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

এটি দ্রুত মোড যা কিছু ইমোজিগুলি মিস করতে পারে কারণ এটি পাঠ্যে ইমোজিগুলি অনুসন্ধানের জন্য হিউরিস্টিক অ্যালগরিদম ব্যবহার করে। .full()সম্পূর্ণ স্ট্রিং স্ক্যান করতে এবং সমস্ত ইমোজিদের গ্যারান্টিযুক্ত সরানোর জন্য পদ্ধতিটি ব্যবহার করুন ।


5
প্রশ্নটি জাভাতে ছিল, সুতরাং এখানে jQuery প্লাগইন প্রাসঙ্গিক নয়।
রিওরিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.