国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用ChoiceFormat將數字與字符串聯系起來

2019-11-18 15:21:06
字體:
來源:轉載
供稿:網友

  我們經常需要用一些數字來代表一些字符串。這里有一些簡單的例子:

0 =〉 no apples
1 =〉 an apple
2 =〉 apples
下面這個例子更復雜一些:

less than 0 =〉 freezing
less than 10 =〉 chilly
less than 30 =〉 nice
greater than 30 =〉 too hot
greater than 100 =〉 boiling
寫代碼時一種解決方案是使用“if…else”語句,還有一種解決方案是使用“switch-case”語句。但事實上還有一種最簡單的方法,盡管很少有人去用它,那就是使用java.text.ChoiceFormat類。

ChoiceFormat可以將數字與字符串聯系起來。和其他java.text Format類不同,ChoiceFormats是由一個構造器產生的,而不是由一個構造方法產生的。

下面的代碼是用來處理我們第一個簡單的例子的:

double[] values = {0,1,2};
String[] output = { "no apples", "an apple", "apples" };
ChoiceFormat cf = new ChoiceFormat(values, output);
String one = cf.format(1);
字符串“one”的值是“an apple”。

在較復雜的那個例子中我們要用到一個ChoiceFormat模板,這樣我們就可以具體的列出一個范圍的清單和一個相應的字符串的清單。

我們可以這樣做:

String pattern = " -1#frozen "+
" 0#freezing "+
" 0.0〈chilly "+
" 10.0〈nice "+
" 30.0〈too hot "+
" 100#boiling ";
ChoiceFormat cf = new ChoiceFormat(pattern);
String temp = cf.format(18.5);
在這個例子中,String類對象temp就是“nice”。

注釋:當使用‘equals’符號“#”時,將會用到一個整數。但是當使用‘above’符號“〈”時,是用一個小數。因此,0#freezing表示0歸為freezing這一類,0.0〈chilly表示任何大于0的數都歸為chilly這一類。那么在兩個“#”之間的值就顯得有趣了。當這個值是-0.5時,輸出的就是“frozen”。-0.5不等于-1,而且比-1大,因此它就被傳遞到下一個臨界值。因為-0.5不等于-1,而且小于0,所以就選擇了前一個臨界值。

由于上面例子中的間距,輸出的值是“frozen ”,而不是“frozen”。解決辦法有兩個:要么在模板中去掉多余的空格,要么在這段程序完成后去掉它。具體用那種方法取決于可讀性的重要程度。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 历史| 电白县| 和龙市| 多伦县| 重庆市| 廉江市| 鹿邑县| 临西县| 长丰县| 昭平县| 怀集县| 芦溪县| 丽水市| 望奎县| 临城县| 十堰市| 长宁区| 大悟县| 秦安县| 南安市| 论坛| 顺平县| 康保县| 高阳县| 台南县| 陕西省| 曲阳县| 吐鲁番市| 长汀县| 石狮市| 武清区| 高淳县| 固始县| 庄浪县| 定结县| 临湘市| 石屏县| 苏州市| 中阳县| 东平县| 肥东县|