import java.text.ChoiceFormat;

/**
* Created by Frank
*/
public class FormatPuralsChoice extends FormatPlurals {
static double[] limits = {0, 1, 2};
static String[] formats = {"reviews", "review", "reviews"};
static ChoiceFormat plurlizedFormat = new ChoiceFormat(limits, formats); // 使用ChoiceFormat将数值转换为英语的文本
static ChoiceFormat quantizedFormat = new ChoiceFormat("0#no reviews|1#one review|1<many reviews"); // 测试数据
static int[] data = {-1, 0, 1, 2, 3}; public static void main(String[] args) {
System.out.println("Pluralized format");
for (int i : data) {
System.out.println("Found " + i + " " + plurlizedFormat.format(i));
}
System.out.println("Quantized Format");
for (int i : data) {
System.out.println("Found " + quantizedFormat.format(i));
}
}
} class FormatPlurals {
public static void main(String[] args) {
report(0);
report(1);
report(2);
} public static void report(int n) {
System.out.println("We used" + n + " item" + (n == 1 ? "" : "s"));
}
}

Java经典实例:使用ChoiceFormat来格式化复数的更多相关文章

  1. Java经典实例:使用DateFormatter来格式化日期时间

    Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; ...

  2. Java经典实例:正则表达式,替换匹配的文本

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank * 替换匹配的文本 */ ...

  3. Java 经典实例:自定义迭代器

    编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用"foreach"循环遍历你的对象. import java.util.Itera ...

  4. Java经典实例:把字符串解析为日期时间

    Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; /** * Created by Frank */ p ...

  5. Java经典实例:纪元秒和本地日期时间互换

    Java版本:1.8开始 import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; /** ...

  6. Java经典实例:比较浮点数

    /** * Created by Frank * 比较浮点数 */ public class FloatCmp { // 公差 private final static Double EPSILON ...

  7. Java经典实例:在文本中匹配换行符

    默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配.如果激活 MULTILINE 模式,则 ^ 在输入的开头和行结束符之后(输入的结尾)才发生匹配.处于 MULTI ...

  8. Java经典实例:在正则表达式中控制大小写

    默认是:区分大小写的: 传递标志参数:Pattern.CASE_INSENSITIVE,以说明匹配时忽略大小写:如果你的代码运行在不同的地区那么你应该再添加一个Pattern.UNICODE_CASE ...

  9. Java经典实例:正则表达式,找到匹配的文本

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public cla ...

随机推荐

  1. 彻底理解跨域解决方案JSONP

    什么是同源策略? 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略. 所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab页 ...

  2. 浅谈attr()和prop()

    刚开始学JQ的时候 ,看到attr()和prop()这两个属性的时候感觉很迷茫,而且配合官方给出的推荐使用图: prop()可以做到的attr()完全都可以,而且做不到的attr()也可以做到.何用? ...

  3. 对HTML5新增JS Api的思考

    1.为什么javascript的变量名不使用css中的命名方法,而选择使用驼峰命名法 因为在javascript中“-”表示减法,所以如果使用“-”的话会出现不必要的问题. 2.在javascript ...

  4. IIS负载均衡(转)

    在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡. 2.数据库 负载均衡. 3.系统 ...

  5. [OpenCV] Samples 08: edge

    Canny edge detector 效率高,效果可控. TrackBar的使用. 技巧:gray找边缘后作为mask去CopyTo(). #include "opencv2/core/u ...

  6. H5游戏开发之多边形碰撞检测

    2D多边形碰撞检测介绍这是一篇论证如何在2D动作游戏中执行碰撞检测的文章(Mario,宇宙入侵者等),为了保证它的高效性和精确性,碰撞检测是以多边形为基础的,而不是以sprite为基础.这是两种不同的 ...

  7. iOS_UIImage_裁切圆形头像

    github地址: https://github.com/mancongiOS/UIImage.git UIImage的Cagetory UIImage+ImageCircle.h - (UIImag ...

  8. 【Android】YUV使用总结 —— Android常用的几种格式:NV21/NV12/YV12/YUV420P的区别

    工作问题接触到图像这一块,需要对手机摄像头采集的原始帧做Rotate或者scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑.       首先想 ...

  9. Glyphish – 精心打造的 iPhone & iPad 应用程序图标

    Glyphish 是一套精心打造的图标库,包含 iOS 工具栏.标签栏.导航条等等,Glyphish 图标也完美的用在 Android.Windows Mobile App 和移动网站的 UI 设计等 ...

  10. Centos6.5 python升级成2.7版本出现的一些问题解决方法

    由于功能及程序依赖,需要将Centos上的python从2.6升级成2.7,把碰到的一些问题记录如下: 安装好2.7后将原来的/usr/bin/python改成/usr/bin/python26,并将 ...