java数字类型格式化

需求:将int型或double型格式成你想的形式并以字符串展现。

前言:在JDK1.5版本之前,程序需要使用java.text包中的相关类(如DecimalFormat)对数字型数据进行格式化。JDK1.5版本提供了更为方便的Formatter类,Formatter类提供了一个和C语言printf函数类似的format方法:format(格式化模式,值列表)。该方法按照“格式化模式”返回“值列表”的字符串表示。目前Java已经将format方法作为了String类的静态方法,因此,程序可以直接使用String类调用format方法对数字进行格式化。

String s = String.format("%.2f",3.141592);

阅读java.util.Formatter类可以了解更多的格式符。

注:如果准备在“格式化模式”中包含普通的%,在编写代码时需要联系输入两个%,如:

String s = String.format("%d%%",89);

%d 十进制

%o 八进制

%x 小写十六进制

%X 大写十六进制

%f 将值格式为十进制浮点数,小数保留6位

%e(%E) 将值格式化为科学计数法的十进制的浮点数

修饰符

加号修饰符“+”:格式化正整数时,强制添加正号(%+d)

逗号修饰符“,”:格式化整数时,按“千”分组,如:

String s = String.format("%,d;%+,d",1235678,9876);

数据宽度

%8d  在数字的左面增加空格至宽度为8

%-8d 在数字的右面增加空格至宽度为8

%8.2f 在数字的左面增加空格至宽度为8,小数占两位

注:可以在宽度的前面增加前缀0,表示用数字0来填充宽度左面的富余部分,如:%08d  ;如果实际数字宽度大于格式中指定的宽度,就按数字的实际宽度进行格式化

---------------------------------------2019.10.23更新-----------------------------------------------------

       工程中见到DecimalFormat的使用,今天翻到这篇文章又来温习一遍。DecimalFormat虽然是旧技术但人家用了也得学,否则代码读不懂。。。坑!

demo演示

package com.jack.demo;

public class Demo1 {
	public static void main(String args[]){
	
		String s = String.format("%,d和%+,d",12345678,9876);
		System.out.println(s);//同时处理多个数值合成一个字符串
		
		System.out.println("123456789");
		
		s = String.format("%8d", 1234);
		System.out.println(s);
		
		s = String.format("%-8d", 1234);
		System.out.println(s);
		
		s = String.format("%08d", 1234);
		System.out.println(s);
		
		s = String.format("%8.2f",123456789.123);
		System.out.println(s);//已经超出了格式范围,只格式了小数位
		
		s = String.format("%8.2f", 1234.5678);
		System.out.println(s);//小数点也占一位
	}
}

输出: 

java数字类型格式化_第1张图片

-----------------------------------------20分钟后------------------------------------------------------

什么jb玩意-DecimalFormat,根本看不懂又是0又是#的,还是String.format用起来自由方便,不学DecimalFormat了。。

你可能感兴趣的:(数值与字符处理)