में अपरकेस ग्रीक परिवर्तित मुझे क्या करना कोशिश कर रहा हूँ काफी सरल है:जावा
String example = "Τάχιστη αλώπηξ βαφής ψημένη γη - Mary Had A Little Lamb";
String upper = example.toUpperCase();
एक अपरकेस शब्द उच्चारण वर्ण शामिल करना चाहिए के यूनानी, केवल पहले पत्र में।
String upper = example.toUpperCase(new java.util.Locale("el"));
:
// upper contains the following (incorrect) string:
// ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ - MARY HAD A LITTLE LAMB
// correct string:
// ΤΑΧΙΣΤΗ ΑΛΩΠΗΞ ΒΑΦΗΣ ΨΗΜΕΝΗ ΓΗ - MARY HAD A LITTLE LAMB
(। लहजे को देखने के लिए कठिन हैं, लेकिन वे वहाँ हो)
Java 1.7 documentation के अनुसार, मैं बहुत की तरह, toUpperCase
के लिए कोई स्थान पारित करने के लिए सक्षम होना चाहिए
हालांकि, ऐसा लगता है कि toUpperCase
के लिए कोई विशिष्ट नियम नहीं हैं जो यूनानी को सही तरीके से संभालते हैं।
क्या किसी विशेष लोकेल के लिए toUpperCase
के व्यवहार को परिभाषित करना संभव है, ताकि मैं सुनिश्चित कर सकूं कि मुझे सही परिणाम मिल रहा है?
वैकल्पिक रूप से, मैं इस विशेष मामले को संभालने के लिए सिर्फ उपयोगिता वर्ग लिख सकता हूं। लेकिन यदि यह संभव है, तो यह अन्य भाषाओं के लिए आने पर, प्रति समारोह इस समारोह को ओवरराइड करना पसंद करेगा।
'toUpperCase' के स्रोत को देखते हुए, ऐसा प्रतीत होता है कि यह केवल तीन वर्णों को छोड़कर, शेष पाठ को देखे बिना व्यक्तिगत रूप से प्रत्येक चरित्र का अनुवाद करता है: तुर्की, एजेरी, लिथुआनियाई। वे कोड में कड़ी मेहनत कर रहे हैं। तो आपको शायद अपना खुद का रोल करना होगा। (पीएस शायद आपको इसे ओरेकल को बग रिपोर्ट के रूप में जमा करना चाहिए।) – ajb
यही वह था जिसे मैं डरता था। मैंने एक नहीं देखा, लेकिन मैं उम्मीद कर रहा था कि प्रति लोकेल उस व्यवहार को बढ़ाने का एक तरीका था। –
पीएस हार्ड-वायर्ड कोड 'बूलियन लोकेल पर निर्भर करता है' निर्भर करता है = (लैंग == "tr" || lang == "az" || lang == "lt"); '। _ वे strings._ Gaaaaaaaaack की तुलना करने के लिए '==' का उपयोग कर रहे हैं। – ajb