项目开发遇到问题描述:
需求是要实现定长报文的 左对齐右补位 的操作。于是项目组的同事们就写了这样的算法。
算法1
public String padRight(String orgStr,int len,String aliStr){
int length=orgStr.length();
for(int i=0;i<len-length;i++){
orgStr+=aliStr;
}
return orgStr;
}`
分析:此段代码只能说是大概实现了该功能,漏洞如下
1 没有考虑 orgStr.length()>=len 的情况。
2 没有考虑 英文数字是一个字节,汉字占两个字节的问题
3 效率底下,使用orgStr+=aliStr,在java中这么写每次都会在内存中创建新的对象。低效的做法不值得提倡。
改进后的算法如下