博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java知识积累1-StringAlign实现文字居中左右对齐
阅读量:4314 次
发布时间:2019-06-06

本文共 1569 字,大约阅读时间需要 5 分钟。

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;
}

}

转载于:https://www.cnblogs.com/ljbky/p/4456752.html

你可能感兴趣的文章
get post 提交
查看>>
R安装
查看>>
JavaScript高级特性-实现继承的七种方式
查看>>
20121016学习笔记四
查看>>
EntityFramework 学习 一 Stored Procedure
查看>>
Sliverlight之 故事板
查看>>
Java 必知必会的 20 种常用类库和 API
查看>>
HDU 1087 Super Jumping! Jumping! Jumping!
查看>>
0007_初始模块和字节码
查看>>
[效率提升]如何管理好你的电脑文件
查看>>
C++实验二
查看>>
SharePoint2010 富文本框添加图片功能的扩展
查看>>
零零碎碎的知识
查看>>
UNIX基础--用户和基本账户管理
查看>>
设计模式
查看>>
5.0以上机器XPOSED框架安装流程
查看>>
静态方法与非静态方法
查看>>
注释,字符串
查看>>
性能瓶颈
查看>>
cmd 导入数据库
查看>>