इसलिए मैं इसके बारे में जानता हूं String#codePointAt(int), लेकिन यह charऑफसेट द्वारा अनुक्रमित है , कोडपॉइंट ऑफसेट द्वारा नहीं।
मैं कुछ करने की कोशिश कर रहा हूँ जैसे:
- एक सूचकांक में
String#charAt(int)पाने के लिए उपयोग करनाchar - परीक्षण है कि क्या
charमें है उच्च surrogates रेंज- यदि हां, तो
String#codePointAt(int)कोडपॉइंट प्राप्त करने के लिए उपयोग करें, और सूचकांक को 2 से बढ़ाएँ - यदि नहीं, तो दिए गए
charमान का उपयोग कोडपॉइंट के रूप में करें, और इंडेक्स को 1 से बढ़ाएँ
- यदि हां, तो
लेकिन मेरी चिंताएं हैं
- मुझे यकीन नहीं है कि कोडपॉइंट जो स्वाभाविक रूप से उच्च-सरोगेट रेंज में हैं, उन्हें दो
charमानों या एक के रूप में संग्रहीत किया जाएगा - यह पात्रों के माध्यम से पुनरावृति करने के लिए एक भयानक महंगा तरीका लगता है
- किसी को कुछ बेहतर के साथ आया होगा।