`
反求诸己
  • 浏览: 543106 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

java 格式化字符串输出

 
阅读更多

输出指定格式的字符串:

Java代码 复制代码 收藏代码
public String toString() {  
                   MessageFormat format = new MessageFormat(  "bankcode: {0}, serverid: {1},date: {2}, billno: {3}, amount: {4}, merchantUrl: {5}, paypath: {6}");
  return format.format(new String[]{bankcode,serverid,date,billno,amount,merchantUrl,paypath});    }  

输出为:

 bankcode: XXX, serverid: XXX,date: XXX, billno: XXX, amount: XXX, merchantUrl:XXX, paypath: XXX

JAVA String.format 方法使用介绍

1.整数进行格式化%[index$][标识][最小宽度]转换方式
        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
'+'    结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'  '    正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'0'    结果将用零来填充
','    只适用于10进制,每3位数字之间用“,”分隔
'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+
’具有同样的限制)

转换方式
d
-十进制   o-八进制   x或X-十六进制

        上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用

        System.out.println(String.format("%1$,09d"-3123));
        System.out.println(String.format(
"%1$9d"-31
));
        System.out.println(String.format(
"%1$-9d"-31
));
        System.out.println(String.format(
"%1$(9d"-31
));
        System.out.println(String.format(
"%1$#9x"5689
));

//
结果为:
//
-0003,123
//
      -31
//
-31      
//
     (31)
//   0x1639



2.浮点数进行格式化%[index$][标识][最少宽度][.精度]转换方式
        我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'+'    结果总是包括一个符号
'  '    正值前加空格,负值前加负号
'0'    结果将用零来填充
','    每3位数字之间用“,”分隔(只适用于fgG的转换)
'('
    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)

转换方式
'e', 'E'  --  结果被格式化为用计算机科学记数法表示的十进制数
'f'          --  结果被格式化为十进制普通表示方式
'g', 'G'    --  根据具体情况,自动选择用普通表示方式还是科学计数法方式
'a', 'A'    --   结果被格式化为带有效位数和指数的十六进制浮点数



3.字符进行格式化
        对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。

4.百分比符号进行格式化
       
看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:
System.out.println(String.format("%1$d%%", 12));

5.取得平台独立的行分隔符
        System.getProperty("line.separator")可以取得平台独立的行分隔符,但是用在format中间未免显得过于烦琐了。于是format函数自带了一个平台独立的行分隔符那就是
String.format("%n")。

6.日期类型进行格式化
         以下日期和时间转换的后缀字符是为 't' 和 'T' 转换定义的。这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 'L' 用作秒中的毫秒)。

以下转换字符用来格式化时间:

'H'     24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。
'I'     12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。
'k'     24 小时制的小时,即 0 - 23。
'l'     12 小时制的小时,即 1 - 12。
'M'     小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。
'S'     分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
'L'     秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。
'N'     秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。
'p'     特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。
'z'     相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。
'Z'     表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
's'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。
'Q'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。

以下转换字符用来格式化日期:
'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。
'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
'h'     与 'b' 相同。
'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"
'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"
'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99
'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e'     一个月中的天数,被格式化为两位数,即 1 - 31。

以下转换字符用于格式化常见的日期/时间组合。
'R'     24 小时制的时间,被格式化为 "%tH:%tM"
'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。
'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'D'     日期,被格式化为 "%tm/%td/%ty"。
'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。
'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。

分享到:
评论

相关推荐

    Java_格式化字符串 汇总

    上述代码展示了如何使用不同的转换符来格式化字符串,输出结果清晰地展示了各种数据类型的格式化效果。 通过上述讲解和实例,我们不仅了解了`String.format()`方法的基本用法,还深入学习了其丰富的转换符和标志,...

    java字符串格式化String.format()

    这种方法类似于C语言中的`printf`函数,允许开发者通过指定格式化字符串来控制输出的布局。本文将详细介绍如何使用`String.format()`来进行各种数据类型的格式化。 #### 二、基本语法 `String.format()`有两种主要...

    Java字符串 日期 数字格式化输出-.doc

    Java 字符串日期数字格式化输出 Java 中的字符串日期数字格式化输出是一种常见的操作,特别是在数据输出和显示时。 Java 提供了多种方式来实现格式化输出,包括使用 NumberFormat、DecimalFormat 和 ...

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    Java格式化Xml文件

    总结来说,Java格式化XML文件涉及的主要知识点有:XML解析器的使用,如`DocumentBuilderFactory`和`DocumentBuilder`;`TransformerFactory`和`Transformer`用于XML的转换,包括设置输出属性;以及`Source`和`Result...

    字符串格式化需求规格说明书

    1. **格式化字符串的基本语法**:在各种编程语言中,如Python的f-string、C++的printf、Java的String.format等,都有各自的字符串格式化方法。理解这些语法对于正确地构造和输出格式化的字符串至关重要。 2. **变量...

    格式化字符串

    在计算机编程中,尤其是在Java这样的面向对象的语言中,格式化字符串是一项非常实用的功能。它主要用于将数据按照特定的格式转换为字符串形式,方便在界面上显示或用于日志记录等场景。常见的格式化类型包括数字格式...

    java中常用字符串方法总结

    `format()`方法允许我们使用占位符来格式化字符串,类似于C语言的`printf`。 13. **比较忽略大小写** `equalsIgnoreCase(String anotherString)`忽略大小写比较字符串。 14. **字符串转其他类型** `parseInt()`...

    JAVA 字符串 操作

    9. 格式化字符串: `format()`方法:类似于C语言的`printf`,用于格式化输出字符串。例如`String formatted = String.format("%d %s", 123, "example");` 10. 字符串与字符数组: - `toCharArray()`:将字符串...

    SQL格式化功能(JAVA代码)

    在给定的标题“SQL格式化功能(JAVA代码)”中,我们聚焦于一个特定的Java实现,它从Hibernate库中抽取了用于SQL格式化的功能,并且不依赖任何第三方jar包。 `Hibernate`是一个流行的Java ORM(对象关系映射)框架...

    Java字符串 日期 数字格式化输出.doc

    总的来说,Java的`java.text`包提供了丰富的工具来格式化字符串、日期和数字,使其在输出时能够满足各种需求,无论是简单的还是复杂的格式化,都能游刃有余。在实际开发中,熟练掌握这些类和方法,将极大地提高代码...

    java对象转换为json字符串或字符串数组

    总结,Java对象转换为JSON字符串或字符串数组是通过引入JSON库,如`json-lib`,然后利用其提供的序列化和反序列化方法实现的。了解并熟练掌握这些方法对于进行Java和JSON之间的数据交换至关重要。在实际项目中,根据...

    Java字符串格式化

    首先,`String.format()`方法是Java中格式化字符串的主要工具。它允许我们根据指定的格式字符串和参数生成新的字符串。例如: ```java String formatted = String.format("Hello, %s! Today is %d.", "World", 2023...

    字符串长度的判断 JAVA

    在Java编程语言中,字符...理解字符串的长度判断和截取是Java编程的基础,它们在实际编程中有着广泛的应用,例如在输入验证、数据处理、格式化输出等场景。熟练掌握这些基本操作,将有助于编写出更加高效和可靠的代码。

    java & Android 格式化字符串详解

    在Java和Android开发中,格式化字符串是一种常用的技术,用于构建动态的、可定制的文本输出。这通常涉及到将变量值插入到预定义的字符串模板中,以便根据需要生成不同的文本内容。以下是对Java和Android格式化字符串...

    实体类生成XML格式字符串

    // 设置输出格式化 StringWriter writer = new StringWriter(); marshaller.marshal(person, writer); System.out.println(writer.toString()); } } ``` 这段代码会生成一个XML字符串,内容类似于: ```xml...

    实例015——格式化字符串.zip

    在编程领域,格式化字符串是一项基础且重要的技能,它允许我们根据特定的模板来构建动态的文本输出。在本实例015中,我们将深入探讨如何在不同的编程语言中使用格式化字符串,以及它们的不同方法和技巧。我们将重点...

    Java字符串类型转换

    Java中的字符串类型转换及其操作是一个广泛且深入的主题,涉及到基本类型转换、字符串内部操作、格式化处理以及高级类型转换等多个方面。掌握这些转换技巧对于编写高效、健壮的Java应用程序至关重要。通过合理运用...

Global site tag (gtag.js) - Google Analytics