zoukankan      html  css  js  c++  java
  • String.format() 方法的用处

    在工作中有时需要生成序列号或时间类型时小于10补零的方法:

    下面举个例子:

    // 我要生成一串序列号  E_00001  一直到  E_00999
     public void console(Long[] ids){
            String m = "E_";
            for (int i = 1; i <= 999; i++) {
               /**
                 * % 表示占位符开始
                 * 0 表示宽度不足时补 0
                 * 5 表示宽度为 5 位数
                 * d 表示数字
                 */
                String format = String.format("%05d", i);
                System.out.println(m+format);
            }
        }

    1、常用转换符

    转换符 说明 示例
    %s 字符串类型 "abcd1234"
    %c 字符类型 'a'
    %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代表不同的日期与时间转换符)  

    2、搭配转换符的标志

    标志 说明 示例 结果
    + 为正数或负数添加符号 format("%+d",99) +99
    - 左对齐 format("%-5s","str") |str  |
    0 数字前补0 format("%05d",99) 00099
    空格 在整数前添加指定数量空格 format("% 5d",99) |   99|
    , 用,对数字进行格式化(三位一逗) format("%,d",321321) 321,321
    ( 使用括号包含负数 format("%(d",-99) 99
    #

    如果是浮点数,则包含小数点

    如果是十六进制或八进制则添加0X或0

    format("%#x",99)

    format("%#o",99)

    0x63

    0143

    < 格式化前一个转换符所描述的参数 format("%f和%<3.2f",99.45) 99.450000和99.45
    $ 被格式化的参数索引 format("%1$d,%2$s", 99,"abc") 99,abc

    3、日期和时间 

    3.1、常见日期和时间组合的格式 

    转换符 说明 示例
    c 包括全部日期和时间信息 星期六 十月 27 14:21:20 CST 2007
    F 年-月-日”格式 2007-10-27
    D “月/日/年”格式 10/27/07
    r “HH:MM:SS PM”格式(12时制) 02:25:51 下午
    T HH:MM:SS”格式(24时制) 14:28:16
    R “HH:MM”格式(24时制) 14:28

    3.2、 日期格式化转换符 

    转换符 说明 示例
    b或者h 月份简称

    中:十月

    英:Oct

    B 月份全称

    中:十月

    英:October

    a 星期的简称

    中:星期六

    英:Sat

    A 星期的全称

    中:星期六

    英:Saturday

    C 年的前两位数字(不足两位前面补0) 20
    y 年的后两位数字(不足两位前面补0) 07
    Y 4位数字的年份(不足4位前面补0) 2007
    j 一年中的天数(即年的第几天) 300
    m 两位数字的月份(不足两位前面补0) 10
    d 两位数字的日(不足两位前面补0) 27
    e 月份的日(前面不补0) 5

    3.3、 时间格式化转换符 

    转换符 说明 示例
    H 2位数字24时制的小时(不足2位前面补0) 15
    I 2位数字12时制的小时(不足2位前面补0) 03
    k 2位数字24时制的小时(前面不补0) 15
    l 2位数字12时制的小时(前面不补0) 3
    M 2位数字的分钟(不足2位前面补0) 03
    S 2位数字的秒(不足2位前面补0) 09
    L 3位数字的毫秒(不足3位前面补0) 015
    N 9位数字的毫秒数(不足9位前面补0) 562000000
    p 小写字母的上午或下午标记

    中:下午

    英:pm

    z 相对于GMT的RFC822时区的偏移量 +0800
    Z 时区缩写字符串 CST
  • 相关阅读:
    ZeptoLab Code Rush 2015
    UVa 10048 Audiophobia【Floyd】
    POJ 1847 Tram【Floyd】
    UVa 247 Calling Circles【传递闭包】
    UVa 1395 Slim Span【最小生成树】
    HDU 4006 The kth great number【优先队列】
    UVa 674 Coin Change【记忆化搜索】
    UVa 10285 Longest Run on a Snowboard【记忆化搜索】
    【NOIP2016提高A组模拟9.28】求导
    【NOIP2012模拟10.9】电费结算
  • 原文地址:https://www.cnblogs.com/wujiaxing/p/14276452.html
Copyright © 2011-2022 走看看