数字格式化

程序可以直接使用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. JFrame上添加、删除Jpanel后动态显示界面问题

    JFrame中动态添加或者删除JPanel后总是不正确显示需要的界面问题: 1.删除panel后还是显示之前的界面,新删除的panel在界面上并没有被删除: 2.删除panel1后添加新的panel2 ...

  2. 我的Android进阶之旅------>Android使用9Patch图片作为不失真背景

    做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了编程也是如此,代码要扩展,界面也要考虑自适应. 这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1 ...

  3. issubclass/type/isinstance、函数和方法、反射、callable、特殊成员补充

    一.issubclass/type/isinstance(***) 1.issubclass(参数1, 参数2):检查第一个参数是否是第二个参数的 子子孙孙类,如下示例: class Base(obj ...

  4. php 使用sendmail发送邮件

    php 使用sendmail发送邮件 1.配置php.ini SMTP=smtp.163.com sendmail_from = 17760273453@163.com sendmail_path = ...

  5. solrcloud配置步骤

    SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案.SolrCloud是Solr的基于Zookeeper一种部署方式. 版本信息:solr版本6.2.0+tom ...

  6. ABAP锁,数据库锁

    原文出自 江正军 技术博客,博客链接:www.cnblogs.com/jiangzhengjun ABAP数据锁定 SM12锁查看与维护 通用加锁与解锁函数 ABAP程序锁定 数据库锁 锁的分类和兼容 ...

  7. python常用模块——logger模块

    python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的python应用. python使用logging模块记录日志涉及四个主要的类: ...

  8. notepad++自动补全

    菜单栏中的语言,选择想要的语言,就能看到代码补全了,设置是更改主题的 添加注释快捷键 ctrl+Q

  9. Python学习进程(8)字符串內建函数

        Python字符串內建函数实现了string模块的大部分方法,并包括了对Unicode编码方式的支持.     (1)capitalize(): 将字符串的第一个字母变成大写,其他字母变小写. ...

  10. SpringBoot整合Redis集群

    一.环境搭建 Redis集群环境搭建:https://www.cnblogs.com/zwcry/p/9174233.html 二.Spring整合Redis集群 1.pom.xml <proj ...