java text包_JavaSE之Text包

包含格式化工具和一些本地化类java.lang.Object

java.text.Annotation

java.text.AttributedCharacterIterator.Attribute (implements java.io.Serializable)

java.text.Format.Field

java.text.DateFormat.Field

java.text.MessageFormat.Field

java.text.NumberFormat.Field

java.text.AttributedString

java.text.Bidi

java.text.BreakIterator (implements java.lang.Cloneable)

java.text.CollationElementIterator

java.text.CollationKey (implements java.lang.Comparable)

java.text.Collator (implements java.lang.Cloneable, java.util.Comparator)

java.text.RuleBasedCollator

java.text.DateFormatSymbols (implements java.lang.Cloneable, java.io.Serializable)

java.text.DecimalFormatSymbols (implements java.lang.Cloneable, java.io.Serializable)

java.text.FieldPosition

java.text.Format (implements java.lang.Cloneable, java.io.Serializable)

java.text.DateFormat

java.text.SimpleDateFormat

java.text.MessageFormat

java.text.NumberFormat

java.text.ChoiceFormat

java.text.DecimalFormat

java.text.Normalizer

java.text.ParsePosition

java.text.StringCharacterIterator (implements java.text.CharacterIterator)

java.lang.Throwable (implements java.io.Serializable)

java.lang.Exception

java.text.ParseException

格式化

抽象父类

父抽象类:java.text.Format

将对象格式化为字符串:format(Object obj, StringBuffer toAppendTo, FieldPosition pos)

将字符串反格式为对象:parseObject(String source, ParsePosition pos)

时间日期

抽象类:java.text.DateFormat

提供工厂方法以使用:1.getDateInstance()输出样式:2015-12-10

2.getDateTimeInstance()输出样式:2015-12-10 10:21:41

3.getTimeInstance()输出样式:10:21:41

4.getInstance()输出样式:15-12-10 上午10:21Date date = new Date();

DateFormat df1 = DateFormat.getInstance();

System.out.println(df1.format(date));

具体类java.text.SimpleDateFormat字母日期或时间元素表示示例GEra 标志符TextAD

y年Year1996; 96

M年中的月份MonthJuly; Jul; 07

w年中的周数Number27

W月份中的周数Number2

D年中的天数Number189

d月份中的天数Number10

F月份中的星期Number2

E星期中的天数TextTuesday; Tue

aAm/pmTextPM

H一天中的小时数(0-23)Number0

k一天中的小时数(1-24)Number24

Kam/pm 中的小时数(0-11)Number0

ham/pm 中的小时数(1-12)Number12

m小时中的分钟数Number30

s分钟中的秒数Number55

S毫秒数Number978

z时区General time zonePacific Standard Time; PST; GMT-08:00

Z时区RFC 822 time zone-0800Date d = new Date();

/* h 1-12输出格式: 2017-04-16 01:01:22 */

DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

System.out.println(format1.format(d));

数值格式化

抽象父类:java.text.NumberFormat

同样使用工厂方法构建对象:1.getCurrencyInstance()方法,根据当前语言环境获取货币数值格式。传递Locale对象可以获取指定语言环境下的货币数值格式。

2.getInstance()和getNumberInstance()方法都会获取到常规数值格式

3.getIntegerInstance()方法获取常规整数值格式,如果需要格式化的数值为小数,则会将数值四舍五入为最接近的整数

4.getPercentInstance()方法获取百分比的数值格式

具体子类:java.text.DecimalFormat

可在创建对象时指定格式:DecimalFormat format2 = new DecimalFormat("##.##");符号含义0表示一个数字,被格式化数值不够的位数会补0

#表示一个数字,被格式化数值不够的位数会忽略

.小数点分隔符的占位符

,分组分隔符的占位符

-缺省负数前缀

%将数值乘以100并显示为百分数

u2030将数值乘以1000并显示为千分数

也可创建对象后使用函数进行设置:setMaximumFractionDigits(int newValue)方法,设置小数部分中允许的最大数字位数

setMinimumFractionDigits(int newValue)方法,设置小数部分中允许的最小数字位数,如果原数小数

位数不够的话,会补零。

对于数值的整数部分,默认3个数字为一组进行显示,同样对此我们也可以自定义,使用setGroupingSize(int i)方法,设置分组中一组的位数。

setGroupingUsed(boolean value)方法设置是否使用分组,true表示使用,false表示取消分组

setMaximumIntegerDigits(int newValue)方法设置整数部分允许的最大数字位数

setMinimumIntegerDigits(int newValue)方法设置整数部分允许的最小数字位数DecimalFormat format3 = new DecimalFormat("0000.00");

System.out.println(format3.format(12.345));//输出0012.35

具体子类:java.text.ChoiceFormat

实例:数字与字符串数组对应,类似枚举double[] limits = { 3, 4, 5, 6, 7, 8, 9 };

String[] formats = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };

ChoiceFormat format = new ChoiceFormat(limits, formats);

System.out.println(format.format(2.5));//将会输出"星期一"

/**3.6介于3和4之间,所以会匹配3,又由于3在limits数组中的索引是0,所以会在formats数组徐照索引0的值,即输出"星期一"

*/

System.out.println(format.format(3.6));

常用函数:主要为区间函数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 cf = new ChoiceFormat("1#is 1 | 1

System.out.println(cf.format(1));//输出"is 1"

System.out.println(cf.format(2));//输出"is more than 1"

System.out.println(cf.format(0));//输出"is 1"

消息格式化

具体类:java.text.MessageFormat

功能:将字符串按照指定格式拼接

条件:格式化字符串+对象数组

直接使用:String value = MessageFormat.format("oh, {0} is 'a' pig", "Spring");两个单引号才表示一个单引号:String value = MessageFormat.format("oh, {0} is ''a'' pig", "Spring");

单引号会使其后面的占位符均失效:MessageFormat.format("'{0}{1}", 1, 2); // 结果{0}{1}

无论是有引号字符串还是无引号字符串,左花括号都是不支持的,应使用单引号包围:'{'

创建对象后使用:MessageFormat temp = new MessageFormat(pattern);

`temp.format(arrays);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值