数字格式化

程序可以直接使用String类调用format方法对数字进行格式化。

format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列的字符由格式符和普通字符所构成。代码展示如下所示:

public class Test05 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = String.format("%.2f", 3.1415926);
System.out.println(s1);
String s2 = String.format("%d元%3.3f公斤%d台", 888, 999.7766, 123);
System.out.println(s2);
} }

运行结果如下所示:

格式化的顺序

一般来说,format的格式化顺序是从左往右,但是可以在格式符前面添加索引符号:index$,例如1$表示值列表的第一个。

String s3 = String.format("不是从左往右: %2$.3f, %3$d, %1$d", 888, 3.141592, 100);
System.out.println(s3);

运行结果如下所示:

如果准备在“格式化模式”中包含普通的“%”,需要连续添加两个%,如

String s4 = String.format("%d%%", 89);
System.out.println(s4);

运行结果如下所示:

格式化整数

1. %d, %o, %x和%X

%d 将值格式化为十进制整数。

%o将值格式化为八进制整数。

%x将值格式化为小写的十六进制整数,例如abc58。代码展示如下所示:

public class Test06 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
String s = String.format("%d,%o,%x,%X",65500, 65500, 65500, 65500);
System.out.println(s); } }

运行结果如下所示:

修饰符

String s2 = String.format("按千分组:%,d. 按千分组带正号 %+,d", 12345, 123456);
System.out.println(s2);

运行结果如下所示:

数据的宽度

规定数据宽度的一般格式为"%md",其效果是在数字的左边添加空格:或“%-md”,其效果是在数字的右边添加空格。代码如下所示:

String s3 = String.format("%8d", 59);
System.out.println(s3);
String s4 = String.format("%-8d", 59);
System.out.println(s4);
System.out.println(s4.length());

运行结果如下所示:

字符串s3和s4的长度发生改变了,变成8.如果实际数字的宽度大于格式中指定的宽度,就按数字的实际宽度显示。

%f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double,详细说明如下:

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

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

String s = String.format("%f, %e", 7283.89, 23929.98);
System.out.println(s);

运行结果如下所示:

“%.nf”可以限制小数的位数,其中n是保留的小数位数,例如%.3f将6.1256格式化为"6.126”,保留3位小数。

String s1 = String.format("%11f", 59.88);
System.out.println(s1);
String s2 = String.format("%-11f", 59.88);
System.out.println(s2);

运行结果如下所示:

review18的更多相关文章

随机推荐

  1. 巨蟒python全栈开发linux之centos5

    1.nginx安装使用 2.nginx访问日志和压测命令 3.nginx反向代理配置 nginx的404页面 访问:淘宝官网的一个错误地址:http://taobao.com/eeeeeeee 淘宝的 ...

  2. Js用户引导插件bootstrap-tour

    1.demo直接贴上来了,有什么不懂的,直接去官网上看,地址:http://bootstraptour.com/. 2.这个bootstrap-tour插件的版本是v0.12.0,复制下来代码,引入库 ...

  3. (扫盲)C#中out和ref之间的区别

    首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所 ...

  4. MySQL中kill所有慢查询进程和锁表进程

    1.kill所有慢查询进程: #!/bin/bash mysql -uroot -pMy_Password -e "show processlist" | grep -i &quo ...

  5. 运行jupyter notebook 出错 Error executing Jupyter command 'notebook'

    实际上是安装jupyter时候有错误, 仔细看日志发现需要缺少 Microsoft Visual C++ Compiler for Python 2.7 下载安装后,重新安装jupyter即可 htt ...

  6. 剑指offer 面试35题

    面试35题: 题目:复杂链表的复制 题:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中 ...

  7. Python之常用模块(re,时间,random,os,sys,序列化模块)(Day20)

    一.时间模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 在Python中表示时间的三种方式:时间戳,元组(s ...

  8. css position absolute 浮动特性

    absolute的元素不会占据未浮动的元素的空间<html> <head> <style type="text/css"> .flipbox{ ...

  9. DD DT DL标签

    我们平时常用的是< ul>< li>标签,不过dd.dt标签也蛮不错,特别是发布程序的时候功能模块列表什么的可以使用它来排版. < dl>< /dl>& ...

  10. JavaScript笔记02——基本语法(包括函数、对象、数组等)

    Doing Math & Logic Conditional & Looping Functions Objects Arrays Doing Math & Logic 1.J ...