标签:异常 tar 可变参数 运行时异常 OLE double lang number illegal
上面一篇写不完NumberFormat类的子类ChoiceFormat类,这一篇接着写ChoiceFormat类,借鉴了
下面看一下ChoiceFormat
类中的几个常用方法
1.nextDouble(double d)
静态方法查找大于d的最小double值,用在limits数组中,从而使limits数组形成一个右开区间数组,例如limits = {0,1,ChoiceFormat.nextDouble(1)}
2.nextDouble(double d, boolean positive)
静态方法,如果positive参数为true,表示查找大于d的最小double值;如果positive参数为false,表示查找小于d的最大double值,这样就可以使limits形成一个左开区间数组。
3.previousDouble(double d)
静态方法,查找小于d的最大double值ChoiceFormat
类的构造方法也允许我们传入一个模式字符串,format方法会根据这个模式字符串执行格式化操作。一个模式元素的格式如下:
doubleNum [占位符] formatStr(占位符可以使用#、< 、\u2264(<=))
//ChoiceFormat类是NumberFormat类的另外一个子类 /* * ChoiceFormat允许将格式化运用到某个范围的数,通常与MessageFormat一同使用 * ChoiceFormat在构造方法中接受一个limits数组(必须是double类型,输入的值向下取整。实际上是一个区间,作为索引可开可闭,
* 必须按照升序排列,否则格式化结果会出错,还可以使用\u221E表示无穷大) * 和一个format数组(作为值),这两个数组的长度必须相等 */ double[] limits = {1,2,3,4,5,6,7}; String[] formats = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"}; ChoiceFormat choiceformat = new ChoiceFormat(limits,formats); System.out.println(choiceformat.format(2.5)); double[] limitss = {0,1,ChoiceFormat.nextDouble(1)}; System.out.println(ChoiceFormat.nextDouble(1)); //模式字符串中的每个模式元素之间使用“|”分割,而且必须按升序进行书写,否则会出现java.lang.IllegalArgumentException的运行时异常。 ChoiceFormat choiceformat1 = new ChoiceFormat("1#is 1 | 1<is more than 1"); System.out.println(choiceformat1.format(1)); System.out.println(choiceformat1.format(2));
MessageFormat类:
常用MessageFormat
的静态方法format
,该方法接收一个字符串的模式和一组对象(对象数组),按照模式形式将格式化的对象插入到模式中,然后返回字符串结果。
/**这是源码注释中的一个例子 * 在这个例子中静态方法format第一个参数是字符串类型的, * 即模式字符串,第二个参数是个可变参数,实际上就是一个Object类型的数组。 * 在模式字符串中使用"{}"标识一个FormatElement。"{}"中的ArgumentIndex对应Object数组中响应索引处的值。 */ String s ="a better future"; int a =1; String resultformat =MessageFormat.format("on {1,time} at {1,date} for {2}.",a,new Date(),s); System.out.println(resultformat);
标签:异常 tar 可变参数 运行时异常 OLE double lang number illegal
原文地址:https://www.cnblogs.com/changhe1995/p/10349303.html