formattable.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 299 行

HTML
299
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:50:48 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>Formattable (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.Formattable interface"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){    parent.document.title="Formattable (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Formattable.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="FormatFlagsConversionMismatchException.html" title="java.util 中的类"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="FormattableFlags.html" title="java.util 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html@java_2Futil_2FFormattable.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="Formattable.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util</FONT><BR>接口 Formattable</H2><HR><DL><DT><PRE>public interface <B>Formattable</B></DL></PRE><P><tt>Formattable</tt> 接口必须通过需要执行自定义格式化(使用 <A HREF="Formatter.html" title="java.util 中的类"><CODE>Formatter</CODE></A> 的 <tt>'s'</tt> 转换说明符)的任何类来实现。此接口允许对格式化任意对象的基本控制。例如,以下类根据标志和长度限制输出股票名称的不同表示形式: <blockquote><pre>   import java.nio.CharBuffer;   import java.util.Formatter;   import java.util.Formattable;   import java.util.Locale;   import static java.util.FormattableFlags.*;  ...    public class StockName implements Formattable {       private String symbol, companyName, frenchCompanyName;       public StockName(String symbol, String companyName,                        String frenchCompanyName) {           ...       }       ...       public void formatTo(Formatter fmt, int f, int width, int precision) {           StringBuilder sb = new StringBuilder();           // decide form of name            String name = companyName;           if (fmt.locale().equals(Locale.FRANCE))               name = frenchCompanyName;           boolean alternate = (f & ALTERNATE) == ALTERNATE;           boolean usesymbol = alternate || (precision != -1 && precision < 10);           String out = (usesymbol ? symbol : name);           // apply precision           if (precision == -1 || out.length() < precision) {               // write it all               sb.append(out);           } else {               sb.append(out.substring(0, precision - 1)).append('*');           }           // apply width and justification           int len = sb.length();            if (len < width)               for (int i = 0; i < width - len; i++)                   if ((f & LEFT_JUSTIFY) == LEFT_JUSTIFY)                       sb.append(' ');                   else                       sb.insert(0, ' ');           fmt.format(sb.toString());       }       public String toString() {           return String.format("%s - %s", symbol, companyName);       }   } </pre></blockquote><p> 当与 <A HREF="Formatter.html" title="java.util 中的类"><CODE>Formatter</CODE></A> 一起使用时,上述类会产生以下各种格式的字符串输出。 <blockquote><pre>   Formatter fmt = new Formatter();   StockName sn = new StockName("HUGE", "Huge Fruit, Inc.",                                "Fruit Titanesque, Inc.");   fmt.format("%s", sn);                   //   -> "Huge Fruit, Inc."   fmt.format("%s", sn.toString());        //   -> "HUGE - Huge Fruit, Inc."   fmt.format("%#s", sn);                  //   -> "HUGE"   fmt.format("%-10.8s", sn);              //   -> "HUGE      "   fmt.format("%.12s", sn);                //   -> "Huge Fruit,*"   fmt.format(Locale.FRANCE, "%25s", sn);  //   -> "   Fruit Titanesque, Inc."  </pre></blockquote><p> 可格式化项对于多线程访问而言没必要是安全的。线程安全是可选的,并且可以通过扩展和实现此接口的类来强制执行。 <p> 除非另行指定,否则将 <tt>null</tt> 参数传递给此接口中的任何方法都会抛出 <A HREF="../lang/NullPointerException.html" title="java.lang 中的类"><CODE>NullPointerException</CODE></A>。<P><P><DL><DT><B>从以下版本开始:</B></DT>  <DD>1.5</DD></DL><HR><P><!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="Formattable.html#formatTo(java.util.Formatter, int, int, int)">formatTo</A></B>(<A HREF="Formatter.html" title="java.util 中的类">Formatter</A>&nbsp;formatter,         int&nbsp;flags,         int&nbsp;width,         int&nbsp;precision)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用提供的<A HREF="Formatter.html" title="java.util 中的类"><CODE>格式化程序</CODE></A>来格式化对象。</TD></TR></TABLE>&nbsp;<P><!-- ============ METHOD DETAIL ========== --><A NAME="method_detail"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"><B>方法详细信息</B></FONT></TH></TR></TABLE><A NAME="formatTo(java.util.Formatter, int, int, int)"><!-- --></A><H3>formatTo</H3><PRE>void <B>formatTo</B>(<A HREF="Formatter.html" title="java.util 中的类">Formatter</A>&nbsp;formatter,              int&nbsp;flags,              int&nbsp;width,              int&nbsp;precision)</PRE><DL><DD>使用提供的<A HREF="Formatter.html" title="java.util 中的类"><CODE>格式化程序</CODE></A>来格式化对象。<P><DD><DL><DT><B>参数:</B><DD><CODE>formatter</CODE> - <A HREF="Formatter.html" title="java.util 中的类"><CODE>格式化程序</CODE></A>。实现类可以调用 <A HREF="Formatter.html#out()"><CODE>formatter.out()</CODE></A> 或 <A HREF="Formatter.html#locale()"><CODE>formatter.locale()</CODE></A>,以获得分别由此 <tt>formatter</tt> 使用的 <A HREF="../lang/Appendable.html" title="java.lang 中的接口"><CODE>Appendable</CODE></A> 或 <A HREF="Locale.html" title="java.util 中的类"><CODE>Locale</CODE></A>。<DD><CODE>flags</CODE> - 这些标志将修改输出格式。该值被解释为位掩码。可以将以下标志的组合设置为:<A HREF="FormattableFlags.html#LEFT_JUSTIFY"><CODE>FormattableFlags.LEFT_JUSTIFY</CODE></A>、<A HREF="FormattableFlags.html#UPPERCASE"><CODE>FormattableFlags.UPPERCASE</CODE></A> 和 <A HREF="FormattableFlags.html#ALTERNATE"><CODE>FormattableFlags.ALTERNATE</CODE></A>。如果没有设置标志,则应用实现类的默认格式。<DD><CODE>width</CODE> - 写入到输出的最少字符数。如果转换值的长度小于 <tt>width</tt>,那么输出将用 <tt>'&nbsp;&nbsp;'</tt> 来填充,直到总字符数等于 width。默认情况下,从开始处进行填充。如果设置了 <A HREF="FormattableFlags.html#LEFT_JUSTIFY"><CODE>FormattableFlags.LEFT_JUSTIFY</CODE></A> 标志,则从结尾处进行填充。如果 <tt>width</tt> 为 <tt>-1</tt>,则不存在最少字符数。<DD><CODE>precision</CODE> - 写入到输出的最多字符数。precision 应用在 width 之前,因此,即使 <tt>width</tt> 大于 <tt>precision</tt>,输出也将被截断为 <tt>precision</tt> 字符。如果 <tt>precision</tt> 为 <tt>-1</tt>,那么对于字符的数量没有明显限制。<DT><B>抛出:</B><DD><CODE><A HREF="IllegalFormatException.html" title="java.util 中的类">IllegalFormatException</A></CODE> - 如果所有参数都无效。有关所有可能的格式设置错误的规范,请参阅 formatter 类规范的 <a          href="Formatter.html#detail">Details</a> 一节。</DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Formattable.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="FormatFlagsConversionMismatchException.html" title="java.util 中的类"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="FormattableFlags.html" title="java.util 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html@java_2Futil_2FFormattable.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="Formattable.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;字段&nbsp;|&nbsp;构造方法&nbsp;|&nbsp;<A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?