`

Java的格式化输出

阅读更多
看API可以看出
String和PrintStrean的printf可以格式化字符串以及下面可能看到的System.err

public PrintStream format(String format,Object... args)
public PrintStream printf(Locale l,
                          String format,
                          Object... args)

public PrintStream printf(String format,Object... args)

public PrintStream format(Locale l,
                          String format,
                          Object... args)

这两种方法等价!!

String的


这种格式化输出 来源于Formatter来!在包java。util中!

但经常被其他类当作静态方法调用

例如

// Writes a formatted string to System.out.
   System.out.format("Local time: %tT", Calendar.getInstance());
   // -> "Local time: 13:34:18"

   // Writes formatted output to System.err.
   System.err.printf("Unable to open file '%1$s': %2$s",
                     fileName, exception.getMessage());
   // -> "Unable to open file 'food': No such file or 
directory"
    StringBuilder sb = new StringBuilder();
   // Send all output to the Appendable object sb
   Formatter formatter = new Formatter(sb, Locale.US);

   // Explicit argument indices may be used to re-order output.
   formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")


首先说下 格式化的格式

引用

常规类型、字符类型和数值类型的格式说明符的语法如下:
       %[argument_index$][flags][width][.precision]conversion
1、 可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。
     第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。

讲解下
例如 上面的例子
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d");

4$是对  d进行格式化!当然输出顺序是按照 4-3-2-1的顺序!!
如果这样呢?
System.out.printf("%3$2s %2$2s %1$2s", "a", "b", "c", "d");
只输出3-2-1


2、可选 flags 是修改输出格式的字符集。有效标志集取决于转换类型。
   是把index的数按照flag输出 并且输出 后面的字符串 
   System.out.printf("%2$s" , "a2345", 1.0);
   输出  1.0
3、可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。

  
引用
对于常规参数类型,精度是将向输出中写入的最多字符数。

    对于浮点转换 'e'、'E' 和 'f',精度是小数点分隔符后的位数。
    如果转换是 'g'    或 'G',那么精度是舍入计算后所得数值的所有位数。
    如果转换是 'a' 或 'A',则不必指定精度。

   对于字符、整数和日期/时间参数类型转换,以及百分比和行分隔符转换,
   精度是不适用的;如果提供精度,则会抛出异常。

4、可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。

5、所需 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数
例如时间中 要格式化时间!日期 等等!

格式化常规响
  第一项是为arg(参数)null是的输出值
  常见的有
   b(false,boolean),
   h(null,Integer.toHexString(arg.hashcode()))
   s(null,String),c(unicode字符),
    d(十进制整数),o(八进制),x(十六进制),
   e(用计算机科学记数法表示的十进制数 )
   t(时间)
   %(b百分百)
   n(平台的换行符)
更多的请到api文档上找相应的!!

时间格式!!

   格式时间 有特定的表示方法!!
  %[argument_index$][flags][width]conversion
  conversion是必须的!!
  所需的 conversion 是一个由两字符组成的序列。第一个字符是 't' 或 'T'。第二个 字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。

在不产生歧义的条件下 index$可以省略!!例如下面的情况!!
例如 
   Calendar c = ...;
   String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

   String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);

'm'  月份,被格式化为必要时带前导零的两位数,即 01 - 13。 
'd'  一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31 
'e'  一个月中的天数,被格式化为两位数,即 1 - 31。 
更多去找api包!!
看这个例子
System.out.printf("Your weight on %s is %f%n",p, p.surfaceWeight(mass));

这里的%n指的是 换行符!
分享到:
评论

相关推荐

    Java 格式化输出 printf 例子.zip_moneytzb

    在Java编程语言中,`printf`方法是`PrintStream`类的一个重要成员,它提供了类似于C语言中的格式化输出功能。这个方法允许我们以灵活的方式控制输出内容的格式,包括精度、宽度、对齐方式等。`moneytzb`可能是指特定...

    Java格式化输出.txt

    Java格式化输出.txt

    java 格式化输出数字的方法

    在Java编程中,格式化输出数字是一项常见的任务,特别是在数据展示和报表生成中。`java.text.DecimalFormat` 类是Java提供的一个强大工具,用于精确控制数字的显示方式。以下是对标题和描述中所述知识点的详细解释:...

    Java格式化输出 format介绍

    char n='150cm'; System.out.format("身高:%s", n); 举个例子 只要在双引号填加自己想说的话就好了 逗号后用来输出变量 占位符 说明 %d 格式化输出整数 %f 格式化输出浮点数 ...%s 格式化输出字符串

    Java格式化Xml文件

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

    Java Sql 格式化工具

    对于独立使用,可以直接通过命令行运行jar包,比如使用`java -jar SQLinForm.jar &lt;input_sql_file&gt; &lt;output_sql_file&gt;`,其中`&lt;input_sql_file&gt;`是包含原始SQL的文件,`&lt;output_sql_file&gt;`则是格式化后SQL的输出文件...

    java组件开发(14) 格式化输出

    java组件开发(14) 格式化输出

    浅谈Java中格式化输出

    Java格式化输出 Java中格式化输出是指使用格式化字符串和参数列表来输出想要的结果。Java中提供了多种方式来实现格式化输出,如System.out.printf()方法、String.format()方法、java.util.Formatter类等。 格式化...

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

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

    SQL格式化功能(JAVA代码)

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

    JAVA格式输出,JAVA格式输出

    在Java编程语言中,控制输出...总结来说,`NumberFormat`和`java.math`包的`BigInteger`、`BigDecimal`类是Java中处理格式化输出和高精度计算的关键工具。它们提供了丰富的功能,确保了在各种场景下的灵活性和精度。

    java常规类型的输出格式化

    java常规类型的格式化.doc ) 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    java中数字格式化输出

    将浮点型数用美元符号和货币符号输出,用格式化的方式。还包括浮点型数据相除时,格式化输出结果。

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    "标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...

    java中时间格式化输出

    当前的系统时间的格式化输出,包括中国时间和美国时间,并且是按照不同的两种方式输出的.

    java日期格式化

    Java日期格式化是Java开发中常见的一项任务,它涉及到日期和时间的处理,尤其是在数据输入输出、用户界面显示以及数据库交互等场景。Java提供了一系列的类来帮助我们完成日期和时间的格式化工作,其中最常用的包括`...

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

    Java编程语言中,字符串、日期和数字的格式化输出是一个重要的概念,特别是在处理用户界面输出或者数据记录时。虽然在C语言中可以使用`printf`函数进行格式化输出,但Java的标准输出`System.out.println()`并没有...

    谷歌java格式-重新格式化 Java 源代码以符合 Google Java 风格

    格式化程序可以作用于整个文件、有限行 ( --lines)、特定偏移量 ( --offset)、传递到标准输出(默认)或就地更改 ( --replace)。 要重新格式化特定补丁中更改的行,请使用 google-java-format-diff.py. 注意: ...

    java 代码格式化工具 使用sun标准格式

    3. 如果一切顺利, Jacobe 会按照Sun标准格式重新格式化`your_file.java`,并覆盖原文件,或者你可以选择输出到新的文件。 在实际开发中,为了保证代码风格的一致性,许多开发团队会在版本控制系统(如Git)的pre-...

    java训前考试

    1. **Java格式化输出**: 题目中的第一题涉及到了Java的格式化输出。`System.out.printf`方法用于格式化输出,其中`%7.3f`表示保留小数点后三位,总宽度为7的浮点数。因此,正确答案是`System.out.printf("|%7.3f| ...

Global site tag (gtag.js) - Google Analytics