日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了哪個默認區域設置是哪個(&Q)?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

對于Unix區域設置,其細分意味著有相對較好的文檔記錄。

LC_COLLATE(字符串排序)
LC_CTYPE(字符轉換)
LC_MESSAGES(消息顯示在UI中)
LC_MONETARY(貨幣值格式)
LC_NUMERIC(非貨幣數值格式)
LC_TIME(日期和時間值格式)
LANG(如果以上任一項未設置,則為后備)

Java有一個不同的分類,與現實世界不太匹配(像往常一樣):

Locale.getDefault()
Locale.getDefault(Locale.Category.DISPLAY)
Locale.getDefault(Locale.Category.FORMAT)

如果您閱讀這些文檔,Locale.getDefault(Locale.Category.DISPLAY)似乎對應于LC_MESSAGES,而Locale.getDefault(Locale.Category.FORMAT)似乎對應于LC_MONETARY+LC_NUMERIC+LC_TIME的某種組合。

但仍有問題。

如果您閱讀了JDK源代碼,您會發現很多令人擔憂的事情。例如,完全關于字符串消息的ResourceBundle.getBundle(String)使用Locale.getDefault()NOTLocale.getDefault(Locale.Category.DISPLAY)

所以我想知道的是:

這些方法中的哪一種應該用于哪種目的?

相關,但我做了一個小測試程序來查看哪些Java區域設置對應于哪些Unix區域設置,并得到了更令人驚訝的結果。

import java.util.Locale;

public class Test {
    public static void main(String[] args) {
        System.out.println("  Unqualified:  " + Locale.getDefault());
        System.out.println("  Display:      " + Locale.getDefault(Locale.Category.DISPLAY));
        System.out.println("  Format:       " + Locale.getDefault(Locale.Category.FORMAT));
    }
}

根據我的外殼進行區域設置:

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

程序輸出:

$ java Test
  Unqualified:  en_AU
  Display:      en_AU
  Format:       en_AU

結果是Java甚至不能從UNIX語言環境中獲得它。它必須使用其他后門才能在不使用這些設置的情況下獲取設置。

推薦答案

很難理解您在這里要求的是什么。相反,您只需做出一條聲明,表明您不一定是Java程序員。沒關系,沒什么大不了的。

需要澄清的幾件事:

Locale類從Java 1.1開始在JDK中
Java 7(JDK 1.7)中提供了Locale.Builder、Locale.Category和許多其他內容
支持區域設置的類和方法,如DateFormat、NumberFormat、Collator、ResourceBundle、String.toLowerCase(Locale)、String.toUpperCase(Locale)以及更多的類和方法在這里存在了相當長的時間(早在JDK 1.7之前)
在Java 7/JDK 1.7之前,獲取當前操作系統區域設置只有一種方法-調用Locale.getDefault()(即不帶參數)

換句話說,在Java 7之前,Java的語言環境模型就像一個由語言、國家和可選語言環境變量組成的系統屬性一樣簡單。這種情況在Java 7中發生了變化(Java 8進一步擴展了End…)現在您有兩個系統屬性,一個用于格式化,另一個用于顯示用戶界面消息。
問題是,有大量的遺留代碼是用Java編寫的,當您升級平臺時,這些代碼不應該被破壞。這就是為什么你仍然有無參數的Locale.getDefault()。而且(您可以自己測試一下),Locale.getDefault()基本上可以和Locale.getDefault(Locale.Category.DISPLAY)互換。

現在,我說的是格式和用戶界面消息。基本上,格式化不僅是格式化,還包括字符大小寫轉換(LC_CTYPE)、排序(LC_COLLATE)等。除了用戶界面消息以外的任何東西。差不多,因為默認字符編碼(取決于操作系統、BTW)不是Locale的一部分。您需要調用Charset.defaultCharset()。
并且可以使用ResourceBundle.Control類來制定后備規則(內置在Java中,而不是從操作系統讀取)。而且我們知道,它與用戶界面類別有很大關系…

Java Locale Model不同于POSIX(不是Unix,它更通用)的原因很簡單,那就是有相當多的平臺。而且這些平臺不一定使用POSIX…我的意思是不僅是操作系統,還有像網絡這樣的東西。Java正在努力成為通用和通用的語言。因此,Java的語言環境模型非常復雜,運氣不佳。

我必須補充的是,如今,不僅是語言和國家,還包括首選腳本、日歷系統、編號系統、特定的校對設置等等。它有時甚至會起作用。

這篇關于哪個默認區域設置是哪個(&Q)?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:amp 區域 是哪個 設置 默認
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定