文档章节

String.format(format, str)用法与详解

张小平-os
 张小平-os
发布于 2016/01/31 21:48
字数 1003
阅读 82
收藏 0
点赞 2
评论 0

String.format(  )方法使用指定的格式和字符串参数,创建格式化的字符串以及连接多个字符串的对象。

此方法有两种重载方法:

// 第一种: 返回的字符串,始终使用本地语言环境(如日期类表现为2016-01-31)
@param format 字符串格式
@param args 0→n 个被格式化参数
public static String format(String format,Object ... args)

// 第二种: 返回的字符串,使用指定的语言环境
@param l 语言环境
@param format 字符串格式
@param args 0→n 个被格式化参数
public static String format(Locale l, String format, Object ... args)

@param format 字符串格式   可使用的转换符选项

转换符
说明
示例
%s
转换成>>>>>>字符串类型
"abcdefg"
%c
转换成>>>>>>字符型
“A”
%b
转换成>>>>>>布尔类型
true/false
%d
转换成>>>>>>整数类型(十进制)
100
%x
转换成>>>>>>整数类型(十六进制)
FF
%o
转换成>>>>>>整数类型(八进制)
77
%f
转换成>>>>>>浮点类型
99.99
%a
转换成>>>>>>十六进制浮点类型
FF.3574
%e
转换成>>>>>>指数类型
9.38e+5
%g
转换成>>>>>>通用浮点类型(f和e类型中较短的)

%h
转换成>>>>>>散列码

%%
转换成>>>>>>百分比类型
%
%n
转换成>>>>>>换行符

%tx
转换成>>>>>>日期与时间类型(x代表不同的日期与时间转换符)

下面使用各种转换符实现不同数据类型到字符串的转换:

public static void main(String[] args){
    String str = null;
    // Hi,你好!
    str = String.format("Hi,%s","你好!"); 
    //字母a的大写是A
    str = String.format("字母a的大写是:%c","A");
    //1>2的结果是:false
    str = String.format("1>2的结果是:%b",1>2);
    //100的一半是50
    str = String.format("100的一半是:%d",100/2);
    //100的16进制数是:64
    str = String.format("100的16进制数是:%x",100);
    //100的8进制数是:144
    str = String.format("100的8进制数是:%o",100);
    //50元的书打8.5折扣是:42.500000元
    str = String.format("50元的书打8.5折扣是:%f 元",50*0.85);
    //上面价格的16进制数是:0x1.54p5
    str = String.format("上面价格的16进制数是:%a",50*0.85);
    //上面价格的指数表示:4.250000e+01
    str = String.format("上面价格的指数表示:%e",50*0.85);
    //上面价格的指数和浮点数结果的长度较短的是:42.5000
    str = String.format("上面价格的指数和浮点数结果的长度较短的是:%g",50*0.85);                                                                 
    //上面的折扣是85%
    str = String.format("上面的折扣是%d%%",85);
    //字母A的散列码是:41
    str = String.format("字母A的散列码是:%h","A");
}

转换符选项还可以与搭配各种标志,生成各种格式字符串。

标志
说明
示例
结果
+
为正数或者负数添加符号 ("%+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

以下是转换符与标志搭配的实例:

public staitc void mian(String args[]){
    String str=null;
    str = String.format("格式参数$的使用:%1$d,%2$s", 99,"abc"); // 格式参数$的使用:99,abc
    str = String.format("显示正负数的符号:%+d与%d", 99,-99);//显示正负数的符号:+99与-99
    str = String.format("最牛的编号是:%03d", 7);//最牛的编号是:007
    str = String.format("Tab键的效果是:% 8d", 7);//Tab键的效果是:    7
    str = String.format("整数分组的效果是:%,d", 9989997);//整数分组的效果是:9,989,997
    str = String.format("一本书的价格是:%2.2f元", 49.8);//一本书的价格是:49.80元
}


© 著作权归作者所有

共有 人打赏支持
张小平-os
粉丝 4
博文 45
码字总数 23621
作品 0
北京
后端工程师
string.Format出现异常"输入的字符串格式有误“

string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我调了很久,还是不对,不明白...

hxyhxl ⋅ 2015/08/20 ⋅ 0

0001 + 1 = 0002,01 + 1 = 02

package com.test.test; / @ClassName: IntDigitPadded @Description: 数字位数补齐,如果此数小于定义总位数,则前面补零 @author PineTree @date 2014年12月19日 下午3:57:38 @version / ...

spml ⋅ 2014/12/19 ⋅ 0

java 位数补0处理

数据库中表的ID为4位数字,如:0001,0012,0123,1234 如果插入的值不满足4位,需要进行转换,有两种方法 第一种方法以: int n = 1; NumberFormat formatter = NumberFormat.getNumberInst...

刘胜球 ⋅ 2014/03/20 ⋅ 0

c#语言学习 专题二 String

前记 msdn上前几个部分我就不说了吧!就从string开始说起!一个程序员的职业生涯很多时候都是在跟这个东西打交道! 内容 一,string和String MSDN中对string的说明: string is an alias for...

viwii ⋅ 2011/12/11 ⋅ 0

java位数补0处理

有三种方式: 现以5位位例: 第一种方式: int n=1;//要转换的数据 int length=n.toString().length(); //生成5位 String v=""; for(int i=0;i<5-length;i++){ v+="0"; } System.out.println......

风中帆 ⋅ 2014/06/16 ⋅ 0

对于字符串替换哪种方式更好?

下面哪种方式更加容易理解。 String str = String.format("商家为[%d:%s] 打[%s]活动招商入围标签[%d] 成功, 打标结果为[%s]", sellerId, applicationDO.getNick(), campaignName,campaignId...

_散财童子_ ⋅ 2015/08/12 ⋅ 6

android string.xml %问题。

Multiple annotations found at this line: - error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? - error: Unexpe......

找骨头的啊呜 ⋅ 2011/04/04 ⋅ 0

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十四)地图编辑器诞生啦!

没有地图编辑器的游戏不是好游戏--至理明言。 到目前为止,教程示例游戏中虽然实现了A*,但是还无法轻松的为地图设置障碍物;并且游戏所有地图均为一张整的大图片,主角的移动会导致窗体对地...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

String.Format()方法

String.Format方法是我们在.Net应用开发时经常使用到的,它的灵活使用有时能够达到事半功倍的效果,下面我们就借用MSDN上的一个示例来向大家展示String.Format的各种用法。 该示例展示了Num...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

JScript实现的一个String.Format方法

在.NET Framework的BCL类String中,有一个很有用的静态方法String.Format。当我们在输出一个需要由多个变量条目来组成的字符串时,非常的有用。特别是在对多语言支持时,使用Format方法来显示...

唐玄奘 ⋅ 2017/12/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

阿里云云栖社区 ⋅ 23分钟前 ⋅ 0

Ubuntu部署django问题汇总

使用Anaconda3的Python3.6的pip安装UWSGI报错 原因是gcc版本不兼容,安装4.7并修改gccsudo apt-get install gcc-4.7sudo mv /usr/bin/gcc /usr/bin/gcc.baksudo ln -s /usr/bin/gcc-4.......

wuyaSama ⋅ 26分钟前 ⋅ 0

从方法论到零售客户实践 解码阿里巴巴数据中台——2018上海云栖大会

摘要: 一、数据中台之道 6月8日,上海云栖大会进入了第二天的议程,数据中台专场论坛座无虚席,数据中台总架构师邓中华女士向在场的观众介绍了数据中台的衍生发展之道。 基于OneID、OneData...

猫耳m ⋅ 26分钟前 ⋅ 0

Docker减肥小记

如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察 如何快速的清理 docker 占用的系统资源,具体点说就是删除那些无用的镜像、容器、网络和数据卷… 1、查看...

寰宇01 ⋅ 37分钟前 ⋅ 0

微信小程序中如何使用WebSocket实现长连接(含完整源码)

本文由腾讯云技术团队原创,感谢作者的分享。 1、前言 微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架、组件以及 API,在这个平台上面的想象空间很大。腾讯云研究了一...

JackJiang- ⋅ 44分钟前 ⋅ 0

定制库到Maven本地资源库

1.如果只有定制库的JAR文件 下载链接如下:pdf.jar 2.使用命令转换成Maven本地资源 mvn install:install-file -Dfile=/Users/manager/Downloads/clj-pdf-2.2.33.jar -DgroupId=clj-pdf -Dar......

年少爱追梦 ⋅ 49分钟前 ⋅ 0

高仿springmvc之xuchen-mvc

package org.mvc.framework.servlet; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.......

徐志 ⋅ 51分钟前 ⋅ 0

关于自定义URLStreamHandler的一次踩坑

关于自定义URLStreamHandler的一次踩坑 20180625 lambo init 说明 一般自定义实现url的协议解析.方案为实现URLStreamHandler.实现其 openConnection 就可以了, 如果我们执行 new URL("xx://...

林小宝 ⋅ 52分钟前 ⋅ 0

【SM2证书】利用BC的X509v3CertificateBuilder组装X509国密证书

演示证书文件 链接: https://pan.baidu.com/s/1ijHNnMQJj7jzW-jXEVd6Gg 密码: vfva 所需jar包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on --> <dependenc......

小帅帅丶 ⋅ 53分钟前 ⋅ 0

用Calendar 实现 计算 一段时间的毫秒值

Calendar c=Calendar.getInstance();c.add(Calendar.MONTH, -1);int lastMonthMaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH)......

岸芷汀兰 ⋅ 57分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部