मैं जावा में किसी शब्द को कैपिटल करने के बारे में प्रश्नों के बाज़िलियन में सभी स्टैक ओवरव्लो को देख रहा हूं, और उनमें से कोई भी कम से कम अंतर्राष्ट्रीयकरण के बारे में परवाह नहीं करता है और वास्तव में कोई भी वास्तव में प्रतीत नहीं होता है एक अंतरराष्ट्रीय संदर्भ में काम करने के लिए। तो ये रहा मेरा प्रश्न।जावा में यूनिकोड-सही शीर्षक केस
मेरे पास जावा में एक स्ट्रिंग है, जो एक शब्द का प्रतिनिधित्व करता है - सभी isLetter() अक्षर, कोई सफेद जगह नहीं है। मैं पहला चरित्र ऊपरी मामला और शेष निचला मामला बनाना चाहता हूं। मेरे पास काम में मेरे शब्द का लोकेल है।
मेरी स्ट्रिंग के अंतिम भाग के लिए .substring (1) .toLowerCase (लोकेल) को कॉल करना काफी आसान है। मुझे नहीं पता कि सही पहला चरित्र कैसे प्राप्त करें।
मेरी पहली समस्या डच के साथ है, जहां "ij" एक digraph होने के साथ एक साथ पूंजीकृत किया जाना चाहिए। मैं हाथ से यह विशेष मामला कर सकता था, क्योंकि मुझे इसके बारे में पता है; अब इस तरह की चीज के साथ अन्य भाषाएं हो सकती हैं जिन्हें मैं नहीं जानता, और मुझे यकीन है कि अगर मैं अच्छी तरह से पूछूं तो यूनिकोड मुझे बताएगा। लेकिन मुझे नहीं पता कि कैसे पूछना है।
भले ही उपरोक्त समस्या हल हो जाए, फिर भी मैं अंग्रेजी, तुर्की और ग्रीक को संभालने के लिए कोई उचित तरीका नहीं हूं, क्योंकि चरित्र शीर्षक शीर्षक का समर्थन करता है लेकिन कोई लोकेल नहीं है, और स्ट्रिंग लोकेशंस का समर्थन करता है लेकिन शीर्षक नहीं।
यदि मैं कोड बिंदु लेता हूं, और इसे Character.toTitleCase() पर भेजता हूं, तो यह विफल हो जाएगा क्योंकि इस विधि में लोकेल को पास करने का कोई तरीका नहीं है। तो अगर सिस्टम लोकेल अंग्रेजी में है लेकिन शब्द तुर्की है, और शब्द का पहला अक्षर "मैं" है, तो मुझे "आई" के बजाय "मैं" मिल जाएगा और यह गलत है। अब अगर मैं एक सबस्ट्रिंग लेता हूं और उपयोग करता हूं .toUpperCase (लोकेल), यह असफल हो जाएगा क्योंकि यह ऊपरी है और शीर्षक का मामला नहीं है। तो अगर शब्द ग्रीक है, तो मुझे अभी भी गलत चरित्र मिल जाएगा।
यदि किसी के पास उपयोगी पॉइंटर्स हैं, तो मुझे उन्हें सुनकर खुशी होगी।
'toTitleCase() 'को लोकेल की आवश्यकता नहीं है, क्योंकि यह लोकेल स्वतंत्र है। --- यदि आप दो अक्षर 'ij' को एक digraph होना चाहते हैं, तो आपको इसे डिग्राफ यूनिकोड वर्ण' ij' (['लैटिन लघु लिगेट IJ' (U + 0133)] में परिवर्तित करना चाहिए (http: // www। fileformat.info/info/unicode/char/0133/index.htm))। – Andreas