/ / यदि आपके पास ISO देश कोड `US`,` FR` है, तो आपको लोकेल कोड (`Locale.US`,` Locale.FRANCE`) कैसे मिलता है? - जावा, अंतर्राष्ट्रीयकरण, स्थानीय, मुद्रा

यदि आपके पास आईएसओ देश कोड 'यूएस`,' एफआर` है, तो आप लोकेल कोड (`लोकेल.यूएस ',' लोकेल.फ्रेंस`) कैसे प्राप्त करते हैं? - जावा, अंतर्राष्ट्रीयकरण, लोकेल, मुद्रा

यदि आपके पास देश कोड है US, FR (ISO-3166-1 अल्फ़ा -2 देश कोड), आपको लोकेल कोड कैसे मिलता है (Locale.US, Locale.FRANCE) कुछ इस तरह से करने के लिए:

System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34));
System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34));

$12.34
12,34 €

उत्तर:

उत्तर № 1 के लिए 14

आप "t" कर सकते हैं, क्योंकि एक लोकेल को a रखने के लिए उपयोग किया जाता हैभाषा, देश नहीं। यह एक विशिष्ट देश के लिए और इस देश में एक विशिष्ट संस्करण के लिए एक भाषा पकड़ सकता है, लेकिन यह "पहले भाषा है। और एक भाषा और एक देश के बीच एक-से-एक संबंध नहीं है। अधिकांश भाषाएँ विभिन्न देशों में बोली जाती हैं। , और कई देशों में कई भाषाएँ हैं।

यदि आपके पास भाषा के लिए देश कोड है, तो आप उपयोग कर सकते हैं new Locale(code)। लेकिन एक देश कोड के साथ, आप सभी कर सकते हैं कॉल getAvailableLocalesपरिणामों के माध्यम से लूप करें, और अपना देश कोड प्राप्त करें। लेकिन कई हो सकते हैं।


जवाब के लिए 2 № 2

आप या तो स्थान बना सकते हैं,

new Locale("en", "US")
new Locale("fr", "FR")

या

के माध्यम से पुनरावृत्त Locale.getAvailableLocales() जब तक आप अपना स्थान नहीं पाते हैं और तब तक उस उदाहरण का उपयोग करें।


जवाब के लिए 2 № 3

ISO-639 भाषा कोड द्वारा एक लोकेल को सबसे महत्वपूर्ण रूप से निर्दिष्ट किया गया है, एक ISO-3166 देश कोड और एक संस्करण भी संभव है। Locale क्लास में कंस्ट्रक्टर होते हैं जो या तो केवल एक भाषा कोड लेते हैं, या इसके अतिरिक्त एक देश कोड, या अतिरिक्त रूप से एक संस्करण।

यदि आपके पास केवल देश कोड है, तो आपको सबसे पहले एक मानचित्र की आवश्यकता होती है जो इसे भाषा कोड में परिवर्तित करता है - लेकिन यह जरूरी नहीं है कि एक अनूठा परिणाम उत्पन्न हो, कई देश एक से अधिक आधिकारिक भाषा का उपयोग करते हैं।


जवाब के लिए 2 № 4

Java7 में है Locale.Builder, लेकिन इससे पहले कि कोई आसान तरीका नहीं है। आप एक उपयोगी तरीका बना सकते हैं:

  1. पाश Locale.getAvailableLocales()
  2. प्रत्येक जाँच के लिए यदि locale.getCountryCode().equals(countryCodeParam) और इसे वापस कर दो