欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 自定义java.text.Format处理右对齐文本阅读,,RightFormat类

来源: javaer 分享于  点击 23729 次 点评:167

Java 自定义java.text.Format处理右对齐文本阅读,,RightFormat类


RightFormat类从java.text.Format类继承。来处理右对齐的字段。 使用这个类结合NumberFormat、DateFormat就可以实现右对齐阅读体验。

RightFormat.java

import java.util.*;import java.text.*;public class RightFormat extends java.text.Format{  private int size;  private char pad;  public RightFormat(int fieldsize, char padchar) {    if (fieldsize <= 1)       throw new IllegalArgumentException("fieldsize must be > 1");    size = fieldsize;    pad = padchar;  }  public RightFormat(int fieldsize) {    this(fieldsize, ' ');  }  public StringBuffer format(Object obj,              StringBuffer toAppendTo,              FieldPosition pos)  {    String val;    int ix;    val = obj.toString();    for(ix = size; ix > val.length(); ix--)       toAppendTo.append(pad);    toAppendTo.append(val);    return toAppendTo;  }  public Object parseObject(String source, ParsePosition status)  {    int start, end, ix;    String ret = "";    end = status.getIndex() + size;    start = status.getIndex();    for(ix = start; ix < end; ix++) {       if (source.charAt(ix) != pad) break;    }    if (ix < end) {       ret = source.substring(ix, end);    }    status.setIndex(end);    return ret;  }}

TestRight.java

import java.text.*;public class TestRight {  public static void main(String args[]) {    long f1 = 1;    long f2 = 1;    RightFormat rf = new RightFormat(20);    System.out.println("Test of RightFormat(20) on Fibonacci numbers:");    for(int ix = 0; ix < 32; ix++) {       System.out.println(rf.format(Long.toString(f1)));       System.out.println(rf.format(Long.toString(f2)));       f1 = f1 + f2;       f2 = f2 + f1;    }  }}
相关栏目:

用户点评