• JDK5新特性之二新的格式化输出


    JDK5.0允许象C语言那样直接用printf()方法来格式化输出,并且提供了许多参数来格式化输入,调用也很简单:

    System.out.format("Pi is approximately %f", Math.Pi);

       System.out.printf("Pi is approximately %f", Math.Pi);

     printf()和 format() 方法具有相同的功能. System.outjava.io.PrintStream的实例. PrintStream, java.io.PrintWriter, 和 java.lang.String 每个类都有四个新的格式化方法:

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

    printf( String format, Object... args);

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

    printf( Locale locale, String format, Object... args);

    同时,以前的formatter类也提供了更完善的方法来格式化,例如:

    formatter.format("Pi is approximately %1$f," +

            "and e is about %2$f", Math.PI, Math.E);

    格式化元素的构成如下:

    %[argument_index$][flags][width][.precision]conversion

    其中:

    argument_index是一个正整数,说明了参数的位置,1为取第一个参数

    width表示输出的最小字母个数

    precision代表数字的小数位数

    conversion代表被格式化的参数的类型:

    f float,

    t time

    d decimal

    o octal

    x hexadecimal

    s general

    c a Unicode character

    以下是个例子:

    package format;

       import java.util.Formatter;

       public class UsingFormatter {

         public static void main(String[] args) {

           if (args.length != 1) {

             System.err.println("usage: " +

               "java format/UsingFormatter ");

             System.exit(0);

           }

           String format = args[0];

           StringBuilder stringBuilder = new StringBuilder();

           Formatter formatter = new Formatter(stringBuilder);

           formatter.format("Pi is approximately " + format +

             ", and e is about " + format, Math.PI, Math.E);

           System.out.println(stringBuilder);

         }

       }

    //控制台调用

    java format/UsingFormatter %f

    //输出

    Pi is approximately 3.141593, and e is about 2.718282

    //控制台调用

    java format/UsingFormatter %.2f

    //输出

    Pi is approximately 3.14, and e is about 2.72

    //控制台调用

    java format/UsingFormatter %6.2f

    //输出(有空格来填补长度)

    Pi is approximately   3.14, and e is about   2.72

    //控制台调用

    java format/UsingFormatter  %1$.2f

    //输出

    Pi is approximately 3.14, and e is about 3.14

    //改变区域设置

    package format;

       import java.util.Formatter;

       import java.util.Locale;

       public class UsingFormatter {

         public static void main(String[] args) {

           if (args.length != 1) {

             System.err.println("usage: " +

               "java format/UsingFormatter <format string>");

             System.exit(0);

           }

           String format = args[0];

           StringBuilder stringBuilder = new StringBuilder();

           Formatter formatter = new Formatter(stringBuilder,

                                       Locale.FRANCE);

           formatter.format("Pi is approximately " + format +

             ", and e is about " + format, Math.PI, Math.E);

           System.out.println(stringBuilder);

         }

       }

    //控制台调用

    java format/UsingFormatter %.2f

    //输出

    Pi is approximately 3,14, and e is about 2,72

    //采用format,printf的可替代写法

    package format;

       public class UsingSystemOut {

         public static void main(String[] args) {

           if (args.length != 1) {

             System.err.println("usage: " +

               "java format/UsingSystemOut <format string>");

             System.exit(0);

           }

           String format = args[0];

           System.out.format("Pi is approximately " + format +

             ", and e is approximately " + format, Math.PI, Math.E);

         }

       }

    //控制台调用

    java format/UsingSystemOut %.2f%n

    //输出

    Pi is approximately 3.14

       , and e is about 2.72

    对时间的格式化用字母t来代表,通常在t后面加上特殊的字符来显示时间的某个部分:

    tr hour and minute,

    tA the day of the week

    tB the name of the month

    te the number of the day of the month

    tY the year

    //eg.

    package format;

       import java.util.Calendar;

       public class FormattingDates {

         public static void main(String[] args) {

           System.out.printf("Right now it is %tr on " +

                             "%<tA, %<tB %<te, %<tY.%n",

                             Calendar.getInstance());

         }

       }

    //说明:“<”指示采用的参数为前一个被格式化的参数

    //输出

    Right now it is 01:55:19 PM on Wednesday, September 22, 2004.

     

  • 相关阅读:
    pdf2html 的docker使用方法和细节
    CSS 各种特效,让设计高大上
    阳光沙滩的ps图片应该包含的元素
    flex布局好好研究把,总是记不住,记性差了,为什么
    proxy研究,不要照本宣科,我们来点有研究精神的文章
    彻底弄懂vue的scoped和deep的作用-----这两个关键词主要处理CSS相关的东西
    JS从数组中,随机抽取6个不重复的元素
    关于nginx隐藏index.php入口文件注意事项
    TP开发项目时遇到的问题记录
    TP3.2.x判断手机端访问,同一个域名在PC和手机端展示不同模板(半独立式网站)
  • 原文地址:https://www.cnblogs.com/fengye/p/652388.html
Copyright © 2020-2023  润新知