সুতরাং আমি জানি String#codePointAt(int)
, তবে এটি char
অফসেট দ্বারা সূচিযুক্ত, কোডপয়েন্ট অফসেট দ্বারা নয়।
আমি এরকম কিছু চেষ্টা করার বিষয়ে ভাবছি:
- একটি সূচক এ
String#charAt(int)
পেতে ব্যবহারchar
char
এটি উচ্চ-সারোগেটের ব্যাপ্তিতে রয়েছে কিনা তা পরীক্ষা করে দেখানো হচ্ছে- যদি তা হয়
String#codePointAt(int)
তবে কোডপয়েন্ট পেতে, এবং সূচকটি 2 দ্বারা বাড়িয়ে নিন - যদি তা না
char
হয় তবে প্রদত্ত মান কোডপয়েন্ট হিসাবে ব্যবহার করুন এবং সূচকে 1 দ্বারা বৃদ্ধি করুন
- যদি তা হয়
তবে আমার উদ্বেগগুলি
- আমি নিশ্চিত নই যে উচ্চ-সারোগেটের পরিসরে প্রাকৃতিকভাবে থাকা কোডপয়েন্টগুলি দুটি
char
মান বা একটি হিসাবে সংরক্ষণ করা হবে - এটি অক্ষরের মাধ্যমে পুনরাবৃত্তি করার এক ভয়ঙ্কর ব্যয়বহুল উপায় বলে মনে হচ্ছে
- কেউ নিশ্চয়ই আরও ভাল কিছু নিয়ে এসেছিল।