赛迪网 > IT技术 Java > Java读书频道-中
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

java.util第2部分:更多的实用工具类 (4)

发布时间:2006.06.12 03:15     来源:清华大学出版社    作者:Herbert Schildt 著 张玉清 吴溥峰等 译

16.8 Locale(地区)

Locale类被实例化以生成其中每一个描述一个地理或文化区域的对象。它是提供了编写在不同的国际环境下都能运行的程序的几个类之一。例如,用于显示各个区域的日期,时间和数字区别的格式设计。国际化是一个超过本书讨论范围的大课题。然而大多数的程序仅仅需要处理其中的一些基本要求,包括设置当前的地区。Locale类定义了下面的一些常数用于处理最常见的地区。

CANADA GERMAN KOREAN

CANADA_FRENCH GERMANY PRC

CHINA ITALIAN SIMPLIFIED_CHINESE

CHINESE ITALY TAIWAN

ENGLISH JAPAN TRADITIONAL_CHINESE

FRANCE JAPANESE UK

FRENCH KOREA US

例如,表达式Locale.CANADA代表了对应加拿大的Locale对象。

Locale的构造函数为:

Locale(String language, String country)

Locale(String language, String country, String data)

这些构造函数建立一个代表指定语言(language)和国家(country)的Locale对象。这些值必须包含ISO标准语言和国家代码。辅助浏览器和特定供应商的信息可以在data中提供。

Locale定义了几种方法。其中最重要的一种是setDefault( ),说明如下:

static void setDefault(Locale localeObj)

它将默认区域设置为由localeObj指定的值。

其他的一些比较感兴趣的方法如下:

final String getDisplayCountry( )

final String getDisplayLanguage( )

final String getDisplayName( )

它们返回可用于显示国家名字,语言种类和对地区做完整描述的可读的字符串。通过使用getDefault( )方法可以获得默认的区域,说明如下:

static Locale getDefault( )

Calendar GregorianCalendar 是按地区方式工作的类的例子。DateFormat SimpleDateFormat也与地区有关。

16.9 Random

Random类是伪随机数的产生器。之所以称之为伪随机数是因为它们是简单的均匀分布序列。Random定义了下面的构造函数。

Random( )

Random(long seed)

第一种形式创建一个使用当前时间作为起始值或称为初值的数字发生器。第二种形式允许人为指定一个初值。如果用初值初始化了一个Random对象,就对随机序列定义了起始点。如果用相同的初值初始化另一个Random对象,将获得同一随机序列。如果要生成不同的序列,应当指定不同的初值。实现这种处理的最简单的方法是使用当前时间作为产生Random对象的初值。这种方法减少了得到相同序列的可能性。

Random定义的公共方法列在表16-6中。

16-6 Random 定义的方法

方法 描述

boolean nextBoolean( ) 返回下一个布尔(boolean)随机数(在Java 2中新增加的)

void nextBytes(byte vals[ ]) 用随机产生的值填充vals

double nextDouble( ) 返回下一个双精度(double)随机数

float nextFloat( ) 返回下一个浮点(float)随机数

double nextGaussian( ) 返回下一个高斯随机数

int nextInt( ) 返回下一个整型(int)随机数

int nextInt(int n) 返回下一个介于0n之间的整型(int)随机数(在Java 2中新增加的)

long nextLong( ) 返回下一个长整型(long)随机数

void setSeed(long newSeed) 将由newSeed指定的值作为种子值(也就是随机数产生器的开始值)正如你能看到的,从Random对象中可以提取七种类型的随机数。从nextBoolean( )方法中可以获得随机布尔数。通过调用nextBytes( )方法可以获得随机字节数。通过调用nextInt( )方法可以获得随机整型数。通过调用nextLong( )方法可以获得均匀分布的长整型随机数。通过调用nextFloat( )nextDouble( )方法可以分别得到在0.01.0之间的,均匀分布的floatdouble随机数。最后,调用nextGaussian( )方法返回中心在0.0,标准偏差为1.0double值,这就是著名的钟型曲线。下面是一个说明由nextGaussian( )方法产生序列的例子。该程序得到100个随机高斯数值,并计算它们的平均值。该程序也统计落在正或负两种标准偏差,且对每一种分类按增量为0.5递增的值的个数,程序运行结果在屏幕上靠左(或靠右)用图形方式画出。

// Demonstrate random Gaussian values.

import java.util.Random;

class RandDemo {

public static void main(String args[]) {

Random r = new Random();

double val;

double sum = 0;

int bell[] = new int[10];

for(int i=0; i<100; i++) {

val = r.nextGaussian();

sum += val;

double t = -2;

for(int x=0; x<10; x++, t += 0.5)

if(val < t) {

bell[x]++;

break;

}

}

System.out.println("Average of values: " +

(sum/100));

// display bell curve, sideways

for(int i=0; i<10; i++) {

for(int x=bell[i]; x>0; x--)

System.out.print("*");

System.out.println();

}

}

}

这里是程序运行的结果,正如你能看到的那样,结果获得了数字的一个钟型分布。

Average of values: 0.0702235271133344

**

*******

******

***************

******************

*****************

*************

**********

********

***

<<上一页 1 2 3 4 5 6 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 中小企业发展缓慢 电子商务存在的问题多
· 马云追加20亿投资淘宝 图谋电子商务霸主
· 国产ITIL运维先行者 四大厂商角力BI市场
· 企业信息安全解决方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统