Java常用类库--国际化程序

国际化程序:

国际化的操作就是指一个程序可以同时适应多门语言,即:如果现在程序的使用者是中国人,则会以中文为显示文字,如果现在程序的使用者是英国人,则会以英语为显示的文字,也就是说可以通过国际化操作,让一个程序适应各个国家的语言要求。那么,对于各个国家来说,每一个程序的代码是不会有任何变化的,但是只是其显示文字上有所差别。

国际化程序实现的思路:程序与显示相分离,根据不同的Locale指定的区域找到不同的资源文件并根据其key取得对应的value。

1、Locale类

2、ResourceBundle类

import java.util.ResourceBundle ;
public class InterDemo01{
	public static void main(String args[]){
		ResourceBundle rb = ResourceBundle.getBundle("Message") ;	// 找到资源文件,不用编写后缀
		System.out.println("内容:" + rb.getString("info")) ;		// 从资源文件中取得内容
	}
};

3、Java国际化程序的实现

import java.util.ResourceBundle ;
import java.util.Locale ;
public class InterDemo02{
	public static void main(String args[]){
		Locale zhLoc = new Locale("zh","CN") ;		// 表示中国地区
		Locale enLoc = new Locale("en","US") ;		// 表示美国地区
		Locale frLoc = new Locale("fr","FR") ;		// 表示法国地区
		// 找到中文的属性文件,需要指定中文的Locale对象
		ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc) ;
		// 找到英文的属性文件,需要指定英文的Locale对象
		ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc) ;
		// 找到法文的属性文件,需要指定法文的Locale对象
		ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc) ;
		// 依次读取各个属性文件的内容,通过键值读取,此时的键值名称统一为info
		System.out.println("中文:" + zhrb.getString("info")) ;
		System.out.println("英语:" + enrb.getString("info")) ;
		System.out.println("法语:" + frrb.getString("info")) ;
	}
};

4、处理动态文本

import java.util.ResourceBundle ;
import java.util.Locale ;
import java.text.* ;
public class InterDemo03{
	public static void main(String args[]){
		Locale zhLoc = new Locale("zh","CN") ;		// 表示中国地区
		Locale enLoc = new Locale("en","US") ;		// 表示美国地区
		Locale frLoc = new Locale("fr","FR") ;		// 表示法国地区
		// 找到中文的属性文件,需要指定中文的Locale对象
		ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc) ;
		// 找到英文的属性文件,需要指定英文的Locale对象
		ResourceBundle enrb = ResourceBundle.getBundle("Message",enLoc) ;
		// 找到法文的属性文件,需要指定法文的Locale对象
		ResourceBundle frrb = ResourceBundle.getBundle("Message",frLoc) ;
		// 依次读取各个属性文件的内容,通过键值读取,此时的键值名称统一为info
		String str1 = zhrb.getString("info") ;
		String str2 = enrb.getString("info") ;
		String str3 = frrb.getString("info") ;
		System.out.println("中文:" + MessageFormat.format(str1,"李兴华")) ;
		System.out.println("英语:" + MessageFormat.format(str2,"LiXingHua")) ;
		System.out.println("法语:" + MessageFormat.format(str3,"LiXingHua")) ;
	}
};

5、可变参数

public class InterDemo04{
	public static void main(String args[]){
		System.out.print("第一次运行:") ;
		fun("LXH","Li","李兴华") ;	// 传入三个参数
		System.out.print("\n第二次运行:") ;
		fun("MLDN") ;				// 传入一个参数
	}
	public static void fun(Object...args){	// 固定语法,输入任意多个数据,使用数组表示
		for(int i=0;i<args.length;i++){
			System.out.print(args[i] + "、") ;
		}
	}
};

数组的形式:

public class InterDemo05{
	public static void main(String args[]){
		System.out.print("第一次运行:") ;
		Object[] arg1 = {"LXH","Li","李兴华"} ;
		fun(arg1) ;	// 传入三个参数
		System.out.print("\n第二次运行:") ;
		Object[] arg2 = {"MLDN"} ;
		fun(arg2) ;				// 传入一个参数
		System.out.print("\n第三次运行:") ;
		Object[] arg3 = {} ;		// 没有参数传入
		fun(arg3) ;
	}
	public static void fun(Object...args){	// 固定语法,输入任意多个数据,使用数组表示
		for(int i=0;i<args.length;i++){
			System.out.print(args[i] + "、") ;
		}
	}
};

6、使用一个类代替资源文件ListResourceBundle

读取资源类:

import java.util.ResourceBundle ;
import java.util.Locale ;
import java.text.* ;
public class InterDemo06{
	public static void main(String args[]){
		Locale zhLoc = new Locale("zh","CN") ;		// 表示中国地区
		// 找到中文的属性文件,需要指定中文的Locale对象
		ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhLoc) ;
		String str1 = zhrb.getString("info") ;
		System.out.println("中文:" + MessageFormat.format(str1,"李兴华")) ;
	}
};

时间: 2024-10-27 21:06:33

Java常用类库--国际化程序的相关文章

Guava v20.0-rc1,Google 的 Java 常用类库

Guava v20.0-rc1 发布了,Google 的 Java 常用类库.该版本主要更新内容是设置版本号为20.0 RC1. 详细改进内容请看:https://github.com/google/guava/compare/v20.0-rc1...master 下载地址: Source code (zip) Source code (tar.gz) Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 目前主要包含: com

JAVA常用类库简介(转)

Java编程语言中为方便学习者学习,编制了许多类,这些类已经经过测试,都是我们编程的基础.如果不利用这些已存在的类,我们的编程工作将变得异常复杂并且效率低下.所以我们应尽可能多的掌握Java基本类库的内容.类库中的类按照其用途归属于不同的包中. 1.java.lang包 java.lang包 是Java中最常用的包,程序不需要注入,就可以使用该包中的类,利用包中的类可以设计最基本的Java程序. 2.java.awt包 java.awt包中的类提供了图形界面的创建方法,包括按钮.文本框.列表框.

Google的Java常用类库 Guava

Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服.很多Guava工具类用快速失败拒绝null值,而不是盲目地接受 1.2 前置条件: 让方法中的条件检查更简单 1.3 常见Object方法: 简化Object方法实现,如hashCode()和toSt

Java常用类库--实例操作--取得当前日期

在开发中经常需要取得日期,而且每次取得日期的时候代码都会重复,所以既然是重复的代码就可以将其定义成一个类,以方便重复调用,但是在操作的时候有一点土鳖需要注意:如果月份是1月,则应该显示01,但是如果是01的话,则数字肯定会忽略掉0. 1.基于Calendar类 import java.util.* ; // 导入需要的工具包 class DateTime{ // 以后直接通过此类就可以取得日期时间 private Calendar calendar = null ; // 声明一个Calenda

Java常用类库--正则表达式(Pattern类、Matcher类)

1.认识正则 public class RegexDemo01{ public static void main(String args[]){ String str = "1234567890" ; // 此字符串由数字组成 boolean flag = true ; // 定义一个标记变量 // 要先将字符串拆分成字符数组,之后依次判断 char c[] = str.toCharArray() ; // 将字符串变为字符数组 for(int i=0;i<c.length;i+

java常用图片读写程序

package util; import java.io.File;   import java.io.FileOutputStream;   import java.awt.Graphics;   import java.awt.Image;   import java.awt.image.BufferedImage;   import com.sun.image.codec.jpeg.JPEGCodec;   import com.sun.image.codec.jpeg.JPEGImage

Java常用类库--日期操作类

1.Date类 在java.util包中定义了Date类,实用简单,直接输出其实例化对象即可. 如果希望按照自己的格式输出时间,可以使用Calendar类. import java.util.Date ; public class DateDemo01{ public static void main(String args[]){ Date date = new Date() ; // 直接实例化Date对象 System.out.println("当前日期为:" + date) ;

Java常用类库--Math、Random、NumberFormat、DecimalFormat、BigInteger、BigDecimal

1.Math类 表示数学操作,例如:平方根.四舍五入等等. public class MathDemo01{ public static void main(String args[]){ // Math类中的方法都是静态方法,直接使用"类.方法名称()"的形式调用即可 System.out.println("求平方根:" + Math.sqrt(9.0)) ; System.out.println("求两数的最大值:" + Math.max(1

Java常用类库--观察者设计模式( Observable类Observer接口)

如果要想实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口. import java.util.* ; class House extends Observable{ // 表示房子可以被观察 private float price ;// 价钱 public House(float price){ this.price = price ; } public float getPrice(){ return this.price ; } publi