CodeGym /Java Blog /Toto sisi /Java 語言環境類
John Squirrels
等級 41
San Francisco

Java 語言環境類

在 Toto sisi 群組發布
如果全世界都有同樣的電源插座,寫數字和日期的原則,那就容易多了。然而,目前情況並非如此,程式設計師必須考慮到這一點。特別是,java.util.Locale類別可讓您考慮字母、符號、數字和日期的區域表示的特殊性。在本文中,我們將了解 Java Locale類別並給出其使用範例。

什麼是語言環境

當您安裝 Microsoft Windows 作業系統時,系統會詢問您所在的國家/地區和語言。事實上,這樣的時刻與Locale的使用有關。可以說,您創建了一個Locale類別的對象,指定國家和語言。這將調出其他相關設置,例如顯示日期和時間。Java 虛擬機器從作業系統中提取區域設定。但是,如果有必要,可以使用特殊方法來變更 Java 中的預設區域設定。

建立 Java Locale 類別的對象

對於某些國家/地區,區域設定是使用常數設定的,例如:

Locale.US
Locale.UK
對於所有其他國家/地區,必須使用建構函式建立Locale類別 的對象,例如:

Locale ukr = new Locale("ukr", "UA");
有一個Locale.ROOT常數。區域設定根代表語言和國家/地區等於空字串 ("") 的區域設定。此區域設定是所有其他區域設定的基本區域設定。用於編寫與區域設定無關的應用程式。讓我們舉一個小例子。

import java.util.Locale;

public class LocaleExample1 {

   public static void main(String[] args) {
       var uk = Locale.UK;
       System.out.println(uk);
       Locale ua = new Locale("ukr", "UA");
       System.out.println(ua);
          }

   }
這是輸出:
en_GB ukr_UA

區域設定類別方法。如何確定或更改目前區域設置

Java中Locale類別有很多方法。您可以從Javadoc 學習它們。在這裡我們只瞥見其中的一些。您可以使用Locale.getDefault()方法來確定目前區域設定:

 Locale current = Locale.getDefault();
您可以使用setDefault() 方法來變更 JVM 目前實例的目前區域設定:

Locale.setDefault(Locale.CANADA);
方法String getCountry()傳回此語言環境的國家或地區代碼。它可以是空字串(大寫 ISO 3166 2 字母代碼)或 UN M.49 3 數字代碼。 String getDisplayCountry()傳回適合向使用者顯示的區域設定國家/地區的名稱。 String getDisplayCountry(Locale inLocale)傳回適合向使用者顯示的區域設定國家的名稱。 String getDisplayLanguage()傳回適合向使用者顯示的區域設定語言的名稱。 String getDisplayLanguage(Locale inLocale)傳回適合向使用者顯示的區域設定語言的名稱。 String getLanguage()傳回Locale的語言程式碼。

區域設定類別範例


import java.util.Locale;
//Locale Example 
public class LocaleExample1 {

   public static void main(String[] args) {
       var uk = Locale.UK;
       System.out.println(uk);
       Locale ua = new Locale("ukr", "UA");
       System.out.println(ua);
       Locale.setDefault(Locale.CANADA);
       Locale current = Locale.getDefault();

       getLocaleInfo(current);
       getLocaleInfo(ua);
       getLocaleInfo(uk);
   }

   private static void getLocaleInfo(Locale current) {
       System.out.println("Country code: " + current.getCountry());
       System.out.println("Name of the Country: " + current.getDisplayCountry());
       System.out.println("Language Code: " + current.getLanguage());
       System.out.println("Language Name: "
               + current.getDisplayLanguage());
       System.out.println();
   }
}
這是輸出:
en_GB ukr_UA 區域代碼:CA 國家/地區名稱:加拿大 語言代碼:en 語言名稱:英語 區域代碼:UA 國家/地區名稱:烏克蘭 語言代碼:ukr 語言名稱:烏克蘭語
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION