补零的问题。(50分)

  • 主题发起人 主题发起人 hotsoup
  • 开始时间 开始时间
H

hotsoup

Unregistered / Unconfirmed
GUEST, unregistred user!
在传送格式化字符串的时候,分段数据如位数不够时左侧常用零来补位。以前在网上看过一个用定义数组来实现的办法。
现在忘记了,哪位高手能贴一段源码,谢谢!
 
ShowMessage(Format('只有3位的整數補成5位的整數:%0.5d',[100]));
 
用stingofchar()
 
我是说在java中!!!!!
 
function formatstr(str:string;strlen:integer,cha:char):string;
begin
while length(str)<strlendo
str:=cha+str;
result:=str;
end;
 
Format('%.10d',[6]);
//补足10位,前面加9个零
 
不需要循环,用数组来解决。
 
import java.text.*;
double var = 1;
DecimalFormat df = new DecimalFormat("0000");
//多少位
System.out.println(df.format(var));

结果为:0001
 
String str = "666" ;
str = "0000000000"+str ;
str = str.substring(str,str.length()-8,str.length()-1) ;
//总长度8位
 
if not VarIsNull(AccountNo) then
begin
Result := format('%.10d', [AccountNo]);
end;
把AccountNo变成10位字符串
如果不够前面补零
 
呵呵
begin
...
end
都出来了
 
kao,既不看分类,也不看别人说什么,乱弹琴!
自己写一个FormatWriter类很容易实现的:
import java.io.*;
public class FormatWriter extends PrintWriter{
private int width=10;
//固定格式宽度
public FormatWriter(Writer output){
super(output);
}
public FormatWriter(Writer output,int width){
super(output);
this.width=width;
}
public FormatWriter(Writer output,boolean autoflush){
super(output,autoflush);
}
public FormatWriter(Writer output,boolean autoflush,int width){
super(output,autoflush);
this.width=width;
}
/**
* 格式化对齐输出字符
* output fix format string
* @param s
*/
private void output(String s){
int blanks=width-s.length();
for(int i=0;i<blanks;i++)
super.print('0');
super.print(s);
}
//overload SuperClass Method
// 重载基类的Print方法,使用调用FormatWriter的output格式化输出
public void print(long value){
output(String.valueOf(value));
//以字符串表示long
}
public void print(double value){
output(String.valueOf(value)) ;//以字符串表示double
}
public void print(int value){
output(String.valueOf(value)) ;
//以字符串表示integer
}
//重载基类的println方方法,使格式化输出字符串
public void println(long value){
output(String.valueOf(value));
super.println();
//调用基类的换行输出
}
public void println(double value){
output(String.valueOf(value));
super.println();
}
public void println(int value){
output(String.valueOf(value));
super.println();
}

public void setWidth(int width){
this.width=width>0?width:1;
}

public int getWidth(){
return width;
}
}
 
后退
顶部