首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 开发频道>Java模式设计之多态模式与多语言支持

Java模式设计之多态模式与多语言支持

2002-11-05 10:24作者:阎宏出处:yesky责任编辑:方舟

  问答题答案

  第一题答案、在英文字Internationalization中,第一个字母i和最后一个字母n之间有18个字母,因此Internationalization又简称作i18n。

  第二题答案、Java库java.text.NumberFormat类提供了对数目字格式的支持,下面给出的就是解答的类图:



图8、对数目字格式支持的解答。

  程序的源代码如下:

package com.javapatterns.multilingual.number;
import java.util.Locale;
import java.text.NumberFormat;
public class NumberFormatTester
{
   static public void displayNumber(
       Double amount, Locale currentLocale)
   {
      NumberFormat formatter;
      String amountOut;
      formatter = 
        NumberFormat.getNumberInstance(currentLocale);
      amountOut = formatter.format(amount);
      System.out.println(amountOut + "   " 
          + currentLocale.toString());
   }
   static public void main(String[] args)
   {
      displayNumber(new Double(1234567.89), 
          new Locale("en", "US"));
      displayNumber(new Double(1234567.89), 
          new Locale("de", "DE"));
      displayNumber(new Double(1234567.89), 
          new Locale("fr", "FR"));
   }
}
代码清单9、Resource文件res_zh_CH.properties的内容。

  在运行时,程序回打印出下面的结果:
  456,789%   en_US
  456.789%   de_DE
  456 789%   fr_FR
代码清单10、Resource文件res_zh_CH.properties的内容。

  第三题答案、Java库java.text.NumberFormat类提供了对货币数目格式的支持。下面给出的就是解答的类图:



图9、对货币数目格式支持的解答。

  程序的源代码如下:
package com.javapatterns.multilingual.number;
import java.util.Locale;
import java.text.NumberFormat;
public class CurrencyFormatTester
{
    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());
    }
    static public void main(String[] args)
    {
       displayCurrency(new Double(1234567.89), 
           new Locale("en", "US"));
       displayCurrency(new Double(1234567.89), 
           new Locale("de", "DE"));
       displayCurrency(new Double(1234567.89), 
           new Locale("fr", "FR"));
    }
}
  代码清单11、Resource文件res_zh_CH.properties的内容。

  在运行时,程序回打印出下面的结果:
  $1,234,567.89     en_US
  1.234.567,89 DM   de_DE
  1 234 567,89 F    fr_FR
代码清单12、Resource文件res_zh_CH.properties的内容。

  第四题答案、Java库java.text.NumberFormat类提供了对百分比格式的支持,下面给出的就是解答的类图:



图10、对百分比式支持的解答。

  程序的源代码如下:

package com.javapatterns.multilingual.number;
import java.util.Locale;
import java.text.NumberFormat;
public class PercentFormatTester
{
    static public void displayPercent(
        Double amount, Locale currentLocale)
    {
       NumberFormat formatter;
       String amountOut;
       formatter = 
        NumberFormat.getPercentInstance(currentLocale);
       amountOut = formatter.format(amount);
       System.out.println(amountOut + "   " 
           + currentLocale.toString());
    }
    static public void main(String[] args)
    {
       displayPercent(new Double(4567.89), 
           new Locale("en", "US"));
       displayPercent(new Double(4567.89), 
           new Locale("de", "DE"));
       displayPercent(new Double(4567.89), 
           new Locale("fr", "FR"));
    }
}
代码清单13、Resource文件res_zh_CH.properties的内容。

  在运行时,程序回打印出下面的结果:

   1,234,567.89 en_US  
   1.234.567,89 de_DE
   1 234 567,89 fr_FR

  代码清单14、Resource文件res_zh_CH.properties的内容。

  (本章问答题第二、三、四题的解答参考了[GREEN]的相关例子,在这里我作了一些改动。)
共5页。 9 1 2 3 4 5

关注此文的读者还看过:

返回开发频道首页

共5页。 上一页12345

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络