Java知識積累1-StringAlign實現文字置中左靠右對齊

來源:互聯網
上載者:User

標籤:

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實現文字置中左靠右對齊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.