W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.util.Locale.LanguageRange
public static final class Locale.LanguageRange
extends Object
此類表示 RFC 4647 語言標(biāo)簽匹配中定義的語言范圍。 語言范圍是一個標(biāo)識符,用于通過使用區(qū)域設(shè)置匹配中描述的機制來選擇滿足特定要求的語言標(biāo)簽。 代表用戶偏好并由語言范圍組成的列表稱為語言優(yōu)先級列表。
有兩種類型的語言范圍:基本和擴展。 在 RFC 4647 中,語言范圍的語法用 ABNF 表示如下:
basic-language-range = (1*8ALPHA *("-" 1*8alphanum)) / "*"
extended-language-range = (1*8ALPHA / "*")
*("-" (1*8alphanum / "*"))
alphanum = ALPHA / DIGIT
例如,“en”(英語)、“ja-JP”(日語、日本)、“”(匹配任何語言標(biāo)簽的特殊語言范圍)是基本語言范圍,而“-CH”(任何語言,瑞士)、 “es-”(西班牙語,任何地區(qū))和“zh-Hant-”(繁體中文,任何地區(qū))是擴展的語言范圍。
修飾符喝類型 | 字段 | 描述 |
---|---|---|
static double | MAX_WEIGHT | 保持權(quán)重最大值 1.0 的常數(shù),表示語言范圍非常適合用戶。 |
static double | MIN_WEIGHT | 保持權(quán)重最小值 0.0 的常數(shù),表示語言范圍不適合用戶。 |
構(gòu)造函數(shù) | 描述 |
---|---|
LanguageRange(String range) | 使用給定范圍構(gòu)造 LanguageRange。 |
LanguageRange(String range, double weight) | 使用給定的范圍和權(quán)重構(gòu)造 LanguageRange。 |
修飾符喝類型 | 方法 | 描述 |
---|---|---|
boolean | equals(Object obj) | 將此對象與指定對象進行比較。 |
String | getRange() | 返回此 LanguageRange 的語言范圍。 |
double | getWeight() | 返回此 LanguageRange 的權(quán)重。 |
int | hashCode() | 返回對象的哈希碼值。 |
static ListLocale.LanguageRange | mapEquivalents(ListLocale.LanguageRange priorityList, MapString,ListString map) | 使用給定的 priorityList 和映射生成新的自定義語言優(yōu)先級列表。 |
static ListLocale.LanguageRange | parse(String ranges) | 解析給定的范圍以生成語言優(yōu)先級列表。 |
static ListLocale.LanguageRange | parse(String ranges, MapString,ListString map) | 解析給定范圍以生成語言優(yōu)先級列表,然后使用給定映射自定義列表。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
public static final double MAX_WEIGHT
保持權(quán)重最大值 1.0 的常數(shù),表示語言范圍非常適合用戶。
public static final double MIN_WEIGHT
保持權(quán)重最小值 0.0 的常數(shù),表示語言范圍不適合用戶。
public LanguageRange(String range)
使用給定范圍構(gòu)造 LanguageRange。 請注意,在構(gòu)建時不會針對 IANA 語言子標(biāo)簽注冊表進行驗證。
這相當(dāng)于 LanguageRange(range, MAX_WEIGHT)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
range | 語言范圍 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果給定范圍為空 |
public LanguageRange(String range, double weight)
使用給定的范圍和權(quán)重構(gòu)造 LanguageRange。 請注意,在構(gòu)建時不會針對 IANA 語言子標(biāo)簽注冊表進行驗證。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
range | 語言范圍 |
weight | 介于 MIN_WEIGHT 和 MAX_WEIGHT 之間的權(quán)重值 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果給定范圍為空 |
IllegalArgumentException | 如果給定的重量小于 MIN_WEIGHT 或大于 MAX_WEIGHT |
public String getRange()
返回此 LanguageRange 的語言范圍。
返回:
語言范圍。
public double getWeight()
返回此 LanguageRange 的權(quán)重。
返回:
weight 值。
public static ListLocale.LanguageRange parse(String ranges)
解析給定的范圍以生成語言優(yōu)先級列表。
此方法對給定范圍內(nèi)的每個語言范圍執(zhí)行語法檢查,但不使用 IANA 語言子標(biāo)簽注冊表進行驗證。
要給出的范圍可以采用以下形式之一:
"Accept-Language: ja,en;q=0.4" (weighted list with Accept-Language prefix)
"ja,en;q=0.4" (weighted list)
"ja,en" (prioritized list)
在加權(quán)列表中,每個語言范圍都有一個權(quán)重值。權(quán)重值與 RFC 2616 中的“質(zhì)量值”相同,它表示用戶對語言的偏好程度。在對應(yīng)的語言范圍后面加上“;q=”指定權(quán)重值,省略時默認(rèn)權(quán)重值為MAX_WEIGHT。
與加權(quán)列表不同,優(yōu)先列表中的語言范圍根據(jù)其優(yōu)先級按降序排列。第一語言范圍的優(yōu)先級最高,最符合用戶的偏好。
在任何一種情況下,語言范圍都會根據(jù)優(yōu)先級或權(quán)重在語言優(yōu)先級列表中按降序排序。如果一個語言范圍多次出現(xiàn)在給定的范圍中,則只有第一個包含在語言優(yōu)先級列表中。
返回的列表由給定范圍中的語言范圍及其在 IANA 語言子標(biāo)簽注冊表中找到的等價物組成。例如,如果給定的范圍是“Accept-Language: iw,en-us;q=0.7,en;q=0.3”,則要返回的列表中的元素是:
Range Weight
"iw" (older tag for Hebrew) 1.0
"he" (new preferred code for Hebrew) 1.0
"en-us" (English, United States) 0.7
"en" (English) 0.3
兩個語言范圍“iw”和“he”在列表中具有相同的最高優(yōu)先級。 通過將“he”添加到用戶的語言優(yōu)先級列表中,即使應(yīng)用程序或系統(tǒng)僅提供“he”作為支持的語言環(huán)境(或語言標(biāo)簽),語言環(huán)境匹配方法也可以找到希伯來語作為匹配的語言環(huán)境(或語言標(biāo)簽)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ranges | 以逗號分隔的語言范圍列表或以 RFC 2616 中定義的“Accept-Language”標(biāo)頭形式的語言范圍列表 |
返回:
語言優(yōu)先級列表,包括給定范圍內(nèi)的語言范圍及其等效的語言范圍(如果有)。 該列表是可修改的。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 ranges 為空 |
IllegalArgumentException | 如果在給定范圍內(nèi)找到的語言范圍或權(quán)重格式不正確 |
public static ListLocale.LanguageRange parse(String ranges, MapString,ListString map)
解析給定范圍以生成語言優(yōu)先級列表,然后使用給定映射自定義列表。 該方法等價于 mapEquivalents(parse(ranges), map)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ranges | 以逗號分隔的語言范圍列表或以 RFC 2616 中定義的“Accept-Language”標(biāo)頭形式的語言范圍列表 |
map | 包含自定義語言范圍信息的 map |
返回:
帶有自定義的語言優(yōu)先級列表。 該列表是可修改的。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 ranges 為空 |
IllegalArgumentException | 如果在給定范圍內(nèi)找到的語言范圍或權(quán)重格式不正確 |
public static ListLocale.LanguageRange mapEquivalents(ListLocale.LanguageRange priorityList, MapString,ListString map)
使用給定的 priorityList 和映射生成新的自定義語言優(yōu)先級列表。 如果給定映射為空,則此方法返回給定 priorityList 的副本。
在 map 中,鍵表示語言范圍,而值是它的等價物列表。 '*' 不能在 map 中使用。 每個等效語言范圍具有與其原始語言范圍相同的權(quán)重值。
An example of map:
Key Value
"zh" (Chinese) "zh",
"zh-Hans"(Simplified Chinese)
"zh-HK" (Chinese, Hong Kong) "zh-HK"
"zh-TW" (Chinese, Taiwan) "zh-TW"
使用 IANA 語言子標(biāo)簽注冊表修改后執(zhí)行自定義。
例如,如果用戶的語言優(yōu)先級列表由五個語言范圍(“zh”、“zh-CN”、“en”、“zh-TW”和“zh-HK”)組成,則新生成的語言優(yōu)先級列表 使用上面的 map 示例自定義將由“zh”、“zh-Hans”、“zh-CN”、“zh-Hans-CN”、“en”、“zh-TW”和“zh-HK”組成 .
“zh-HK”和“zh-TW”不會轉(zhuǎn)換為“zh-Hans-HK”或“zh-Hans-TW”,即使它們包含在語言優(yōu)先級列表中。 在這個例子中,映射用于清楚地區(qū)分簡體中文和繁體中文。
如果映射中不包含“zh”-to-“zh”映射,將執(zhí)行簡單替換,自定義列表將不包含“zh”和“zh-CN”。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
priorityList | 用戶的語言優(yōu)先級列表 |
map | 包含自定義語言范圍信息的 map |
返回:
具有自定義功能的新語言優(yōu)先級列表。 該列表是可修改的。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 priorityList 為空 |
public int hashCode()
返回對象的哈希碼值。
覆蓋:
類 Object 中的 hashCode
返回:
此對象的哈希碼值。
public boolean equals(Object obj)
將此對象與指定對象進行比較。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且是包含與此對象相同的范圍和權(quán)重值的 LanguageRange 對象時,結(jié)果才為 true。
覆蓋:
類 Object 中的等于
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
obj | 比較的對象 |
返回:
如果此對象的范圍和權(quán)重與 obj 相同,則為 true; 否則為 false。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: