常规类型的格式化

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。

l     format(String format, Object... args)

该方法使用指定的字符串格式和参数生成格式化的新字符串。 新字符串始终使用本地语言环境。例如当前日期信息在中国语言环境中的表现形式为“2007-10-27”,但是在其他国家有不同的表现形式。

语法:

String.format(format,args...)

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

l     format(Locale locale, String format, Object... args)

该方法使用指定的语言环境、字符串格式和参数生成一个格式化的新字符串。新字符串始终使用指定的语言环境。

语法:

String.format(locale,format,args...)

locale:指定的语言环境。

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

format()方法中的字符串格式参数有很多种转换符选项,例如:日期、整数、浮点数等。这些转换符的说明如表7.1所示。

表7.1                                  转换符

转  换  符

说    明

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符

 

ch0705实例位置:mr/07/sl/05

下面的实例使用了表7.1中的各种转换符实现不同数据类型到字符串的转换,并将转换后的字符串通过System.out.printf()方法输出到控制台中。实现步骤如下。

(1)创建StrConversion类,将下面这段代码复制到类定义中。

例程06  代码位置:光盘/mr/07/sl/05/src/com/lzw/StrConversion.java

public static void main(String[] args) {

String str=null;

str=String.format("Hi,%s", "飞龙");          // 格式化字符串

System.out.println(str);                             // 输出字符串变量str的内容

System.out.printf("字母a的大写是:%c %n", 'A');

System.out.printf("3>7的结果是:%b %n", 3>7);

System.out.printf("100的一半是:%d %n", 100/2);

System.out.printf("100的16进制数是:%x %n", 100);

System.out.printf("100的8进制数是:%o %n", 100);

System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);

System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);

System.out.printf("上面价格的指数表示:%e %n", 50*0.85);

System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);

System.out.printf("上面的折扣是%d%% %n", 85);

System.out.printf("字母A的散列码是:%h %n", 'A');

}

(2)运行StrConversion类,在控制台中输出的结果如下:

Hi,飞龙

字母a的大写是:A

3>7的结果是:false

100的一半是:50

100的16进制数是:64

100的8进制数是:144

50元的书打8.5折扣是:42.500000 元

上面价格的16进制数是:0x1.54p5

上面价格的指数表示:4.250000e+01

上面价格的指数和浮点数结果的长度较短的是:42.5000

上面的折扣是85%

字母A的散列码是:41

这些字符串格式参数不但可以灵活将其他数据类型转换成字符串,而且可以与各种标志组合在一起,生成各种格式的字符串,这些标志如表7.2所示。

表7.2                             搭配转换符的标志

标    志

说    明

示    例

结    果

+

为正数或者负数添加符号

("%+d",15)

+15

左对齐

("%-5d",15)

|15   |

0

数字前面补0

("%04d", 99)

0099

空格

在整数之前添加指定数量的空格

("% 4d", 99)

|  99|

,

以“,”对数字分组

("%,f", 9999.99)

9,999.990000

(

使用括号包含负数

("%(f", -99.99)

(99.990000)

#

如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0

("%#x", 99)

("%#o", 99)

0x63

0143

<

格式化前一个转换符所描述的参数

("%f和%<3.2f", 99.45)

99.450000和99.45

$

被格式化的参数索引

("%1$d,%2$s", 99,"abc")

99,abc

ch0706实例位置:mr/07/sl/06

下面的实例使用几种常用的转换符组合标志实现字符串的格式化,并通过System.out.printf()方法输出到控制台中。实现步骤如下。

(1)创建StrDateTime类,将下面这段代码复制到类定义中。

例程07  代码位置:光盘/mr/07/sl/06/src/com/lzw/StrFormat.java

public static void main(String[] args) {

String str=null;

str=String.format("格式参数$的使用:%1$d,%2$s", 99,"abc");           // 格式化字符串

System.out.println(str);                                                                                     // 输出字符串变量

System.out.printf("显示正负数的符号:%+d与%d%n", 99,-99);

System.out.printf("最牛的编号是:%03d%n", 7);

System.out.printf("Tab键的效果是:% 8d%n", 7);

System.out.printf("整数分组的效果是:%,d%n", 9989997);

System.out.printf("一本书的价格是:%2.2f元%n", 49.8);

}

(2)运行StrFormat类,将在控制台输出字符串的格式化结果。

格式参数$的使用:99,abc

显示正负数的符号:+99与-99

最牛的编号是:007

Tab键的效果是:       7

整数分组的效果是:9,989,997

一本书的价格是:49.80元

String format -1 常规格式化的更多相关文章

  1. C#中string.Format()和ToString()格式化方法

    C#数字格式化输出是我们在编程中经常需要处理的事情,那么这里向你介绍了一些C#数字格式化输出的例子,这样就会方便你来选择和比较,什么方式是比较适合自己项目的. int a = 12345678; C# ...

  2. JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,

    1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解, ...

  3. string.Format 日期格式化

    String.Format日期的格式化例子: DateTime dt = DateTime.Now;//2010年10月4日 17点05分 string str = ""; //s ...

  4. String.format()格式化日期(2)

    在以前的开发中,日期格式化一直使用的是SimpleDateFormat进行格式化.今天发现String.format也可以格式化.当 然,两种方式的优劣没有进行深入分析. 1. 日期格式化 (2018 ...

  5. String.Format用法

    http://blog.csdn.net/yohop/article/details/2534907 1.作为参数   名称 说明   Format(String, Object) 将指定的 Stri ...

  6. String.Format使用方法

    1.作为參数   名称 说明   Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.   Format(String, ...

  7. String.format()的详细用法

    问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男” 其中的 XXX 是用户名 每个用户也是不一样的 地区 上海 为可 ...

  8. String.format()详细用法

    String.format()字符串常规类型格式化的两种重载方式 format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字 ...

  9. 转载:String.format()的详细用法

    转载自:https://blog.csdn.net/anita9999/article/details/82346552 问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textvie ...

随机推荐

  1. Oracle数据库存量数据抽取使用spool控制命令

    spool是oracle  sqlplus提供的一个控制命令.可以利用spool和select语句的组合动态生成一些失去了脚本或者一些数据. 1.spool作用: 在sqlplus中用来保存或打印查询 ...

  2. 线段树(单点更新,区间查询) HDU 1754 I Hate It

    题目链接 线段树的模板 #include<iostream> #include<cstdio> #include<cmath> #include<algori ...

  3. Leetcode 664.奇怪的打印机

    奇怪的打印机 有台奇怪的打印机有以下两个特殊要求: 打印机每次只能打印同一个字符序列. 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符. 给定一个只包含小写英文字母的字符串,你的任 ...

  4. NodeJs03 express框架 Todo商城

    前言 由于NodeJs本身的异步非阻塞特性和对http的天然支持,所以使用NodeJs编写高性能,可伸缩的Web服务器非常简单.开发完整的Web服务器还需要路由,错误处理,请求拦截,请求和响应的解析, ...

  5. Eclipse中安装svn的插件安装和使用

    先关闭Eclipse 步骤一:下载site-1.10.11.zip  将其解压 解压后目录 步骤二:创建一个文件夹svn,将解压后的文件copy到svn路径下 步骤三:打开Eclipse安装路径: e ...

  6. .net网站数据抓取

    最新项目需要抓取人民币汇率中间价的数据,所以就写了个简单的爬虫抓取数据.抓取的网站为:http://www.safe.gov.cn/wps/portal/sy/tjsj_hlzjj_inquire # ...

  7. PHP session 与cookie

    知识点: session是将服务器将网页产生的会话信息以数组形式存到一个php文件中,产生的全局变量,可以在系统下的其他网页任意调用这个数据. cookie类似于session原理,但是是将数据存给用 ...

  8. springmvc和struts2的区别(转)

    1.客户端浏览器发出HTTP请求.   2.根据web.xml配置,该请求被FilterDispatcher接收.   3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过I ...

  9. [CF954G]Castle Defense

    题目大意:有$n$个点,每个点最开始有$a_i$个弓箭手,在第$i$个位置的弓箭手可以给$[i-r,i+r]$区间加上$1$的防御,你还有$k$个弓箭手,要求你最大化最小防御值 题解:二分答案,从右向 ...

  10. 洛谷 P2173 [ZJOI2012]网络 解题报告

    P2173 [ZJOI2012]网络 题目描述 有一个无向图G,每个点有个权值,每条边有一个颜色.这个无向图满足以下两个条件: 对于任意节点连出去的边中,相同颜色的边不超过两条. 图中不存在同色的环, ...