数据结构使用二:字符串格式化

java.text.Format 格式化

import java.text.Format;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.text.ChoiceFormat;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.text.NumberFormat;

1.1Format抽象类

    有两个抽象方法,format、parseObject;

1.2Format的子类

    格式化日期、消息和数字分别提供了三个特殊的 Format 的子类:

  • DateFormat(抽象类)   Format   —>DateFormat   —>SimpleDateFormat
  • MessageFormat         Format  —>MessageFormat
  • NumberFormat(抽象类)   Format  —>NumberFormat —>ChoiceFormat及DecimalFormat用于格式化十进制数字

1.3 DataFormat

 

1.4 MessageFormat

 

1.5 NumberFormat介绍

    NumberFormat 是所有数字格式的抽象基类。类结构与DateFormat类似。主要也是通过get***Instance方法(工厂函数?)获得实现类DecimalFormat;

public static void main(String[] args) {
    Double myNumber=23323.3323232323;
    Double test=0.3434;

    //getInstance()返回当前缺省语言环境的缺省数值格式。
    String myString = NumberFormat.getInstance().format(myNumber);
    System.out.println(myString);    //23,323.332

    //getCurrencyInstance()返回当前缺省语言环境的通用格式
    myString = NumberFormat.getCurrencyInstance().format(myNumber);
    System.out.println(myString);    //¥23,323.33

    //getNumberInstance() 返回当前缺省语言环境的通用数值格式。
    myString = NumberFormat.getNumberInstance().format(myNumber);
    System.out.println(myString);    //23,323.332

    //getPercentInstance()  返回当前缺省语言环境的百分比格式。
    myString = NumberFormat.getPercentInstance().format(test);
    System.out.println(myString);    //34%

    //setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。
    //setMaximumIntegerDigits(int)  设置数值的整数部分允许的最大位数。
    //setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。
    //setMinimumIntegerDigits(int)  设置数值的整数部分允许的最小位数.
    NumberFormat format = NumberFormat.getInstance();
    format.setMinimumFractionDigits( 3 );
    format.setMaximumFractionDigits(5);
    format.setMaximumIntegerDigits( 10 );
    format.setMinimumIntegerDigits(0);
    System.out.println(format.format(2132323213.23266666666));    //2,132,323,213.23267

}

1.5.1 子类DecimalFormat
    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。在DecimalFormat中传入pattern,可以自定义格式化类型。舍入方式是half-even(四舍五入)。
1.5.2 子类ChoiceFormat

 

1.5.6. 其它的数字格式化
     另外在对数字进行格式化时,也可以考虑使用java.math.BigDecimal。
     如setScale(int newScale,int roundingMode):newScale指精确度,即保留几位小数。roundingMode指舍入模式,常用的是四舍五入。DecimalFormat貌似只能使用四舍五入,如果使用别的舍入方式,就要使用BigDecimal了。
java.lang.Integer中的几个转换进制的方法也比较实用

  • toBinaryString(int i): 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
  • toHexString(int i): 以十六进制的无符号整数形式返回一个整数参数的字符串表示形式
  • toOctalString(int i) :以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。


小数格式化

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值