欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入解析java中的locale

 更新時間:2013年08月27日 10:19:40   作者:  
以下是對java中的locale進行了深入的分析介紹,需要的朋友可以過來參考下
在項目中經(jīng)常要用到將字符串解析成Locale,但是沒有一個比較好用的類。
java本身提供了3個構造函數(shù),但是實際使用過程中,需要自己解析,比較繁瑣。
Locale(langugae)
locale(language,country)

Locale(String language, String country, String variant)
Apache 有個 LocaleUtils.toLocale(String language)但是不支持最后2個字符為小寫的,如:zh_CN支持, zh_cn就不支持。

參考其它方法,寫了下面的類,做個筆記,也希望對解決類似問題的人有點幫助。
復制代碼 代碼如下:

import java.util.Locale;
public class LocaleUtil
{
    private final static Locale DEFAULT_LOCALE = Locale.ENGLISH;

    public final static String IETF_SEPARATOR = "-"; 

    public final static String SEPARATOR = "_"; 

    public final static String EMPTY_STRING = "";

   
    public static Locale toLocale( String language )
    {
        if( !StringUtil.isNullOrEmpty( language ) )
        {
            return langToLocale( language, SEPARATOR );
        }
        return DEFAULT_LOCALE;
    }

     public static Locale langToLocale( String lang , String separator )
     {
           if( StringUtil.isNullOrEmpty( lang ) )
           {
                return DEFAULT_LOCALE;
           }
            String language = EMPTY_STRING;
            String country =  EMPTY_STRING;
            String variant =  EMPTY_STRING;
            int i1 = lang.indexOf( separator );
            if ( i1 < 0 )
            {
                language = lang;
            } else
            {
                language = lang.substring(0, i1);
                ++i1;
                int i2 = lang.indexOf( separator, i1);
                if (i2 < 0)
                {
                    country = lang.substring(i1);
                } else
                {
                    country = lang.substring(i1, i2);
                    variant = lang.substring(i2+1);
                }
            }

            if(language.length() == 2)
            {
               language = language.toLowerCase();
            }else
            {
              language = EMPTY_STRING;
            }

            if(country.length() == 2)
            {
               country = country.toUpperCase();
            }else
            {
              country = EMPTY_STRING;
            }

            if( (variant.length() > 0) &&
                ((language.length() == 2) ||(country.length() == 2)) )
            {
               variant = variant.toUpperCase();
            }else
            {
                variant = EMPTY_STRING;
            }

            return new Locale(language, country, variant );
        }
}

注意:
復制代碼 代碼如下:

 public class StringUtil
{
    public static boolean isNullOrEmpty(String target) {
        return target == null || "".equals(target);
    }
}

相關文章

  • spring 重復注解和aop攔截的實現(xiàn)示例

    spring 重復注解和aop攔截的實現(xiàn)示例

    本文主要介紹了spring 重復注解和aop攔截的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • 區(qū)分Java中的ArrayList和LinkedList

    區(qū)分Java中的ArrayList和LinkedList

    這篇文章主要介紹了如何區(qū)分Java中ArrayList和LinkedList,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • JVM入門之內存結構(堆、方法區(qū))

    JVM入門之內存結構(堆、方法區(qū))

    JVM 基本上是每家招聘公司都會問到的問題,它們會這么無聊問這些不切實際的問題嗎?很顯然不是。由 JVM 引發(fā)的故障問題,無論在我們開發(fā)過程中還是生產(chǎn)環(huán)境下都是非常常見的
    2021-06-06
  • 使用java?-jar修改SpringBoot中application.properties的配置項

    使用java?-jar修改SpringBoot中application.properties的配置項

    這篇文章主要介紹了使用java?-jar修改SpringBoot中application.properties的配置項問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Druid監(jiān)控分布式實現(xiàn)過程解析

    Druid監(jiān)控分布式實現(xiàn)過程解析

    這篇文章主要介紹了Druid監(jiān)控分布式實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java實現(xiàn)小程序簡單五子棋

    Java實現(xiàn)小程序簡單五子棋

    這篇文章主要介紹了利用Java實現(xiàn)小程序簡單五子棋,本程序適用于java初學者鞏固類與對象、事件響應、awt包中各種工具的相關概念以及對邏輯能力的鍛煉,下面來看具體實現(xiàn)吧
    2021-12-12
  • 教你用JDK編譯Java文件的方法

    教你用JDK編譯Java文件的方法

    這篇文章主要介紹了教你用JDK編譯Java文件的方法,分步驟給大家介紹了設置環(huán)境變量的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • spring-boot-maven-plugin未指定版本導致的編譯錯誤問題

    spring-boot-maven-plugin未指定版本導致的編譯錯誤問題

    這篇文章主要介紹了spring-boot-maven-plugin未指定版本導致的編譯錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java中靜態(tài)代碼塊、構造代碼塊、構造函數(shù)和普通代碼塊的區(qū)別

    Java中靜態(tài)代碼塊、構造代碼塊、構造函數(shù)和普通代碼塊的區(qū)別

    在Java中,靜態(tài)代碼塊、構造代碼塊、構造函數(shù)、普通代碼塊的執(zhí)行順序是一個筆試的考點,通過這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下
    2023-05-05
  • 使用自定義參數(shù)解析器同一個參數(shù)支持多種Content-Type

    使用自定義參數(shù)解析器同一個參數(shù)支持多種Content-Type

    這篇文章主要介紹了使用自定義參數(shù)解析器同一個參數(shù)支持多種Content-Type的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論