import java.text.*;
public class StringAlign extends Format{
public static final int JUST_LEFT='l'; //左对齐常量
public static final int JUST_RIGHT='r'; //右对齐常量
public static final int JUST_CENTER='c'; //居中常量
private int just; //当前的对其
private int maxChars;
public StringAlign(int maxChars,int just){
switch (just) {
case JUST_CENTER:
case JUST_LEFT:
case JUST_RIGHT:
this.just=just;
break;
default:
throw new IllegalArgumentException("invalid justification arg.");
}
if(maxChars<0){
throw new IllegalArgumentException("必须是正数!");
}
this.maxChars=maxChars;
}
public StringBuffer format(Object obj,StringBuffer where,FieldPosition ignore){
String s=(String)obj;
String wanted=s.substring(0, Math.min(s.length(), maxChars));
//如果没有空间用于对齐,则返回最大行宽的内容
if(wanted.length()>maxChars){
where.append(wanted);
}
else switch (just) {
case JUST_RIGHT:
pad(where,maxChars-wanted.length());
where.append(wanted);
break;
case JUST_LEFT:
where.append(wanted);
pad(where,maxChars-wanted.length());
break;
case JUST_CENTER:
int startPos=where.length();
pad(where,(maxChars-wanted.length())/2);
where.append(wanted);
pad(where,(maxChars-wanted.length())/2);
//调整化整误差
pad(where,maxChars-(where.length()-startPos));
break;

}
return where;
}
protected final void pad(StringBuffer to,int howMany){
for(int i=0;i<howMany;i++){
to.append(' ');
}
}
String format(String s){
return format(s,new StringBuffer(),null).toString();
}
@Override
public Object parseObject(String source, ParsePosition pos) {
// TODO Auto-generated method stub
return source;
}

}

Java知识积累1-StringAlign实现文字居中左右对齐的更多相关文章

  1. Java知识积累2-StringReverse实现文字(单词)倒叙输出

    package String; import java.util.Stack;import java.util.StringTokenizer; public class StringReverse ...

  2. JAVA知识积累 给HttpClient添加Socks代理

    本文描述http client使用socks代理过程中需要注意的几个方面:1,socks5支持用户密码授权:2,支持https:3,支持让代理服务器解析DNS: 使用代理创建Socket 从原理上来看 ...

  3. Java知识积累3-XML的DOM解析修改和删除方法

    import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder;import jav ...

  4. Java知识积累-XML的DOM解析修改和删除方法

    import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder;import jav ...

  5. 项目积累——JAVA知识积累

    调用天气: <iframe src="http://www.thinkpage.cn/weather/weather.aspx?uid=&c=CHXX0008&l=zh ...

  6. java知识积累——单元测试和JUnit(二)

    首先来复习一下几个重要知识点,然后接着进行一些介绍.在上一篇文章中,我曾经贴过下面这张图片: 在Which method stubs would you like to create?这里,现在结合4 ...

  7. Java知识积累——单元测试和JUnit(一)

    说起单元测试,刚毕业或者没毕业的人可能大多停留在课本讲述的定义阶段,至于具体是怎么定义的,估计也不会有太多人记得.我们的教育总是这样让人“欣 慰”.那么什么是单元测试呢?具体科学的定义咱就不去关心了, ...

  8. JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】

    什么是JSP JSP全名为Java Server Pages,java服务器页面.JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在! 为什么需要JSP JSP是为了简化Servle ...

  9. 【Python】 零碎知识积累 II

    [Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...

随机推荐

  1. WebForm Repeater使用

    Repeater: HeaderTemplate: 在加载开始执行一遍 ItemTemplate : 有多少条数据,执行多少遍 FooterTemplate :在加载最后执行一遍 Alternatin ...

  2. 第二天 ado.net, asp.net ,三层笔记

    1. ado.net步骤:     一:倒入命名空间      using System.Data;      using System.Data.sqlclient;     二:第一个模型 int ...

  3. 论文阅读(Zhuoyao Zhong——【aixiv2016】DeepText A Unified Framework for Text Proposal Generation and Text Detection in Natural Images)

    Zhuoyao Zhong--[aixiv2016]DeepText A Unified Framework for Text Proposal Generation and Text Detecti ...

  4. aliyun阿里云Maven仓库地址

    <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexu ...

  5. Web 播放声音 — Flash 篇 (播放 AMR、WAV)

    本文主要介绍 Flash 播放 AMR 格式 Base64码 音频. 在此之前么有接触过 Flash ,接触 AS3 是一头雾水,不过幸好有 TypeScript 和 JavaScript 的基础看起 ...

  6. PHP基础班初学心得:脑洞实验-JS变量存储函数与return的一些问题

    本人刚参加PHP基础班培训第一天,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在 ...

  7. viewport设置

    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable ...

  8. 分享前端Facebook及Twitter第三方登录

    最近公司要求做海外的第三方登录:目前只做了Facebook和Twitter;国内百度到的信息太少VPN FQ百度+Google了很久终于弄好了.但是做第三方登录基本上都有个特点就是引入必须的js,设置 ...

  9. 一个可拖拽的DIV框框

    http://codepen.io/lrelia/pen/bEyLB 使用了JQuery UI库, draggable来自于JQuery UI库

  10. HDU 3605:Escape(最大流+状态压缩)

    http://acm.hdu.edu.cn/showproblem.php?pid=3605 题意:有n个人要去到m个星球上,这n个人每个人对m个星球有一个选择,即愿不愿意去,"Y" ...