java: Multion Pattern
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | /** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 多例模式 (Multion Patterns) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc LingualResource.java *https://github.com/TakahikoKawasaki/nv-i18n/blob/master/src/test/java/com/neovisionaries/i18n/LanguageCodeTest.java * */ package com.javapatterns.multilingual; import java.util.HashMap; import java.util.Locale; import java.util.ResourceBundle; import java.util.Locale; import java.text.NumberFormat; public class LingualResource { private String languageCode = "en" ; private String regionCode = "US" ; private String localeCode = "en_US" ; private static final String FILE_NAME = "res" ; private static HashMap instances = new HashMap( 10 ); private Locale locale = null ; private ResourceBundle resourceBundle = null ; private LingualResource lnkLingualResource; private LingualResource(String languageCode, String regionCode) { this .localeCode = languageCode; this .regionCode = regionCode; localeCode = makeLocaleCode(languageCode , regionCode); locale = new Locale(languageCode, regionCode); resourceBundle = ResourceBundle.getBundle(FILE_NAME, locale); instances.put( makeLocaleCode(languageCode, regionCode) , resourceBundle); } private LingualResource() { //do nothing } public synchronized static LingualResource getInstance(String language, String region) { return new LingualResource( language, region ); } public String getLocaleString(String code) { return resourceBundle.getString(code); } private static String makeLocaleCode(String language, String region) { return language + "_" + region; } static public void displayCurrency(Double amount, Locale currentLocale) { NumberFormat formatter; String amountOut; formatter = NumberFormat.getCurrencyInstance(currentLocale); amountOut = formatter.format(amount); System.out.println(amountOut + " " + currentLocale.toString()); } } |
调用测试:
1 2 3 | LingualResource.displayCurrency( new Double( 1234567.89 ), new Locale( "en" , "US" )); LingualResource.displayCurrency( new Double( 1234567.89 ), new Locale( "de" , "DE" )); LingualResource.displayCurrency( new Double( 1234567.89 ), new Locale( "fr" , "FR" )); |
输出:
1 2 3 | $ 1 , 234 , 567.89 en_US 1.234 . 567 , 89 € de_DE 1 234 567 , 89 € fr_FR |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2018-09-14 SQLite: sql script demo
2012-09-14 csharp: winform using Microsoft.Ink(Tablet PC API) create Signature image
2010-09-14 AJAX Framework四个框架:AJAX Control Toolkit,MagicAjax.NET,Anthem.NET,Ajax.NET Professional
2009-09-14 aspx net.2.0 C#获取IP,URL,浏览器,操作系统