鴻蒙OS Locale.Builder

2022-07-28 14:32 更新

Locale.Builder

java.lang.Object

|---java.util.Locale.Builder

public static final class Locale.Builder
extends Object

Builder 用于根據(jù) setter 配置的值構(gòu)建 Locale 的實例。 與 Locale 構(gòu)造函數(shù)不同,Builder 檢查由 setter 配置的值是否滿足 Locale 類定義的語法要求。 由 Builder 創(chuàng)建的 Locale 對象格式正確,可以轉(zhuǎn)換為格式正確的 IETF BCP 47 語言標(biāo)簽而不會丟失信息。

注意:Locale 類不對變體提供任何語法限制,而 BCP 47 要求每個變體子標(biāo)簽為 5 到 8 個字母數(shù)字或單個數(shù)字后跟 3 個字母數(shù)字。 對于不滿足此限制的變體,方法 setVariant 會引發(fā) IllformedLocaleException。 如果需要支持這種變體,請使用 Locale 構(gòu)造函數(shù)。 但是,請記住,以這種方式創(chuàng)建的 Locale 對象在轉(zhuǎn)換為 BCP 47 語言標(biāo)簽時可能會丟失變體信息。

以下示例顯示如何使用 Builder 創(chuàng)建 Locale 對象。

     Locale aLocale = new Builder().setLanguage("sr").setScript("Latn").setRegion("RS").build();

構(gòu)建器可以重復(fù)使用; clear() 將所有字段重置為其默認(rèn)值。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
Builder() 構(gòu)造一個空的 Builder。

方法總結(jié)

修飾符和類型 方法 描述
Locale.Builder addUnicodeLocaleAttribute(String attribute) 添加 unicode 語言環(huán)境屬性,如果不存在,否則無效。
Locale build() 返回從此構(gòu)建器上設(shè)置的字段創(chuàng)建的 Locale 實例。
Locale.Builder clear() 將構(gòu)建器重置為其初始的空狀態(tài)。
Locale.Builder clearExtensions() 將擴(kuò)展重置為其初始的空狀態(tài)。
Locale.Builder removeUnicodeLocaleAttribute(String attribute) 刪除 unicode 語言環(huán)境屬性(如果存在),否則無效。
Locale.Builder setExtension(char key, String value) 設(shè)置給定鍵的擴(kuò)展名。
Locale.Builder setLanguage(String language) 設(shè)置語言。
Locale.Builder setLanguageTag(String languageTag) 重置 Builder 以匹配提供的 IETF BCP 47 語言標(biāo)簽。
Locale.Builder setLocale(Locale locale) 重置 Builder 以匹配提供的語言環(huán)境。
Locale.Builder setRegion(String region) 設(shè)置區(qū)域。
Locale.Builder setScript(String script) 設(shè)置腳本。
Locale.Builder setUnicodeLocaleKeyword(String key, String type) 設(shè)置給定鍵的 Unicode 語言環(huán)境關(guān)鍵字類型。
Locale.Builder setVariant(String variant) 設(shè)置變體。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

構(gòu)造函數(shù)詳細(xì)信息

Builder

public Builder()

構(gòu)造一個空的 Builder。 所有字段、擴(kuò)展和私人使用信息的默認(rèn)值為空字符串。

方法詳情

setLocale

public Locale.Builder setLocale(Locale locale)

重置 Builder 以匹配提供的語言環(huán)境。 現(xiàn)有狀態(tài)被丟棄。

語言環(huán)境的所有字段必須格式正確。

具有任何格式錯誤的字段的語言環(huán)境會導(dǎo)致拋出 IllformedLocaleException,但出于兼容性原因接受以下三種情況除外:

  • Locale("ja", "JP", "JP") 被視為 "ja-JP-u-ca-japanese"
  • Locale("th", "TH", "TH") 被視為 "th-TH-u-nu-thai"
  • Locale("no", "NO", "NY") 被視為 "nn-NO"

參數(shù):

參數(shù)名稱 參數(shù)描述
locale 語言環(huán)境

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 locale 有任何格式錯誤的字段。
NullPointerException 如果 locale 為空

setLanguageTag

public Locale.Builder setLanguageTag(String languageTag)

重置 Builder 以匹配提供的 IETF BCP 47 語言標(biāo)簽。 丟棄現(xiàn)有狀態(tài)。 Null 和空字符串會導(dǎo)致構(gòu)建器被重置,如 clear()。 祖代標(biāo)簽(請參閱 Locale#forLanguageTag)在處理之前轉(zhuǎn)換為它們的規(guī)范形式。 否則,語言標(biāo)記必須是格式正確的,否則會引發(fā)異常(與 Locale.forLanguageTag 不同,它只會丟棄格式錯誤的標(biāo)記和后續(xù)部分)。

參數(shù):

參數(shù)名稱 參數(shù)描述
languageTag 語言標(biāo)簽

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 languageTag 格式不正確

setLanguage

public Locale.Builder setLanguage(String language)

設(shè)置語言。 如果 language 為空字符串或 null,則刪除此 Builder 中的語言。 否則,語言必須格式正確,否則會引發(fā)異常。

典型的語言值是 ISO639 中定義的兩個或三個字母的語言代碼。

參數(shù):

參數(shù)名稱 參數(shù)描述
language 語言

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 language 格式不正確

setScript

public Locale.Builder setScript(String script)

設(shè)置腳本。 如果 script 為 null 或空字符串,則刪除此 Builder 中的腳本。 否則,腳本必須格式正確,否則會引發(fā)異常。

典型的腳本值是 ISO 15924 定義的四字母腳本代碼。

參數(shù):

參數(shù)名稱 參數(shù)描述
script 腳本

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 script 格式不正確

setRegion

public Locale.Builder setRegion(String region)

設(shè)置區(qū)域。 如果 region 為 null 或空字符串,則刪除此 Builder 中的區(qū)域。 否則,該區(qū)域必須是格式良好的,否則將引發(fā)異常。

典型的區(qū)域值是兩個字母的 ISO 3166 代碼或三位數(shù)的 UN M.49 區(qū)域代碼。

由 Builder 創(chuàng)建的 Locale 中的 country 值始終標(biāo)準(zhǔn)化為大寫。

參數(shù):

參數(shù)名稱 參數(shù)描述
region 該區(qū)域

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 region 格式不正確

setVariant

public Locale.Builder setVariant(String variant)

設(shè)置變體。 如果 variant 為 null 或空字符串,則刪除此 Builder 中的變體。 否則,它必須由一個或多個格式正確的子標(biāo)簽組成,否則將引發(fā)異常。

注意:此方法檢查變體是否滿足 IETF BCP 47 變體子標(biāo)簽的語法要求,并將值規(guī)范化為小寫字母。 但是,Locale 類對變體沒有任何語法限制,并且 Locale 中的變體值區(qū)分大小寫。 要設(shè)置這樣的變體,請使用 Locale 構(gòu)造函數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
variant 變體

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 variant 格式不正確

setExtension

public Locale.Builder setExtension(char key, String value)

設(shè)置給定鍵的擴(kuò)展名。 如果值為 null 或空字符串,則刪除擴(kuò)展名。 否則,擴(kuò)展必須是格式正確的,否則會引發(fā)異常。

注意:鍵 Locale#UNICODE_LOCALE_EXTENSION ('u') 用于 Unicode 語言環(huán)境擴(kuò)展。 設(shè)置此鍵的值會將任何現(xiàn)有的 Unicode 語言環(huán)境鍵/類型對替換為擴(kuò)展中定義的那些。

注意:鍵 Locale#PRIVATE_USE_EXTENSION ('x') 用于私人使用代碼。 為了形成良好的格式,此鍵的值只需具有 1 到 8 個字母數(shù)字字符的子標(biāo)簽,而不是一般情況下的 2 到 8 個。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 擴(kuò)展密鑰
value 擴(kuò)展值

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 key 或 value 格式不正確

setUnicodeLocaleKeyword

public Locale.Builder setUnicodeLocaleKeyword(String key, String type)

設(shè)置給定鍵的 Unicode 語言環(huán)境關(guān)鍵字類型。 如果類型為 null,則刪除 Unicode 關(guān)鍵字。 否則,鍵必須為非空,并且鍵和類型都必須格式正確,否則將引發(fā)異常。

鍵和類型轉(zhuǎn)換為小寫。

注意:通過 setExtension(char, java.lang.String) 設(shè)置 'u' 擴(kuò)展名會將所有 Unicode 語言環(huán)境關(guān)鍵字替換為擴(kuò)展名中定義的關(guān)鍵字。

參數(shù):

參數(shù)名稱 參數(shù)描述
key Unicode 語言環(huán)境鍵
type Unicode 語言環(huán)境類型

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
IllformedLocaleException 如果 key 或 type 格式不正確
NullPointerException 如果 key 為空

addUnicodeLocaleAttribute

public Locale.Builder addUnicodeLocaleAttribute(String attribute)

添加 unicode 語言環(huán)境屬性,如果不存在,否則無效。 該屬性不能為空,并且必須格式正確,否則將引發(fā)異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
attribute 屬性

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 attribute 為空
IllformedLocaleException 如果 attribute 格式不正確

removeUnicodeLocaleAttribute

public Locale.Builder removeUnicodeLocaleAttribute(String attribute)

刪除 unicode 語言環(huán)境屬性(如果存在),否則無效。 該屬性不能為空,并且必須格式正確,否則將引發(fā)異常。

刪除的屬性比較不區(qū)分大小寫。

參數(shù):

參數(shù)名稱 參數(shù)描述
attribute 屬性

返回:

這個建設(shè)者。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 attribute 為空
IllformedLocaleException 如果 attribute 格式不正確

clear

public Locale.Builder clear()

將構(gòu)建器重置為其初始的空狀態(tài)。

返回:

這個建設(shè)者。

clearExtensions

public Locale.Builder clearExtensions()

將擴(kuò)展重置為其初始的空狀態(tài)。 語言、文字、地區(qū)和變體不變。

返回:

這個建設(shè)者。

build

public Locale build()

返回從此構(gòu)建器上設(shè)置的字段創(chuàng)建的 Locale 實例。

這將在構(gòu)造語言環(huán)境時應(yīng)用 Locale#forLanguageTag 中列出的轉(zhuǎn)換。 (祖父標(biāo)簽在 setLanguageTag(java.lang.String) 中處理。)

返回:

語言環(huán)境。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號