请叫个字符串问题

tyu1850 2007-05-09 12:59:09
要求判断一个字段的长度,并补位
例如字段名字为ABC,最大能容纳5个字符
判断ABC长度要是小于5位的话,用A补位
例:输入了12
补位后为12AAA
请教怎么实现
...全文
253 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongyali2005 2007-05-09
  • 打赏
  • 举报
回复
楼主的思路很清楚啊.可以自己用代码实现了.
baobao28 2007-05-09
  • 打赏
  • 举报
回复
全英文倒EASY,如果中英文混合就麻烦一些了
rcom10002 2007-05-09
  • 打赏
  • 举报
回复
public class Main {

public static void main(String[] args) throws Exception {
System.out.println(RPad("", "0", 8));
}

public static String RPad(String targetString, String padString, int length) {
if (targetString == null || targetString.length() > length
|| padString == null || "".equals(padString)) {
return targetString;
}
int tempLength = length - targetString.length();
for (int i = 0; i < tempLength; i++) {
targetString += padString;
}
return targetString.substring(0, length);
}

}

RPad("a", "3210", 10) => "a321032103"
RPad("asdf", "01", 1) => "asdf"
RPad("asdf", "01", 0) => "asdf"
RPad("asdf", "", 100) => "asdf"
RPad("asdf", null, 100) => "asdf"
RPad("asdf", "0", 8) => "asdf0000"
RPad(null, "0", 8) => null
RPad("", "0", 8) => "00000000"
acefr 2007-05-09
  • 打赏
  • 举报
回复
填充字符串
/**
* 以指定的字符串右填充
*
* @param s 需要填充的字符串
* @param len 填充后的长度
* @param c 指定的填充字符串
* @return 右填充后的字串
*/

public String substr(String s, String c,int len) {

if (s == null) {
s = "";
}

s = s.trim();

s = s+c;

return s.substring(0,len);
}
eg:

String ABC="12";
String s1="ABABABABAB";
String s2="AAAAA";
ABC = substr(ABC,s2,5);
----------
12AAA
----------
如果填充的是AB, 长度是10

ABC = substr(ABC,s1,10)
----------
12ABABABAB
----------

如果源字串长度大于所需长度, 返回所需长度字串
ABC="121212";
ABC = substr(ABC,s2,5);
----------
12121
----------
KevinXie 2007-05-09
  • 打赏
  • 举报
回复
抱歉,忘记改了一个变量,我原来的程序是补零的,所以也定义成zero了,此处改为letter


public static String addString(String value, int maxLen, String way) {
int length = maxLen - value.length();
String ret = value;

char[] letter = new char[length];
String temp = "";

if (length>0) { //判断要填充的个数
java.util.Arrays.fill(letter, 'A'); //填充的字符可自定义,也可传入指定的参数
String temp = new String(letter);

if (way.equals("L"))
ret = temp + ret; //左补位
else
ret = ret + temp ;//右补位
}
return ret;
}
KevinXie 2007-05-09
  • 打赏
  • 举报
回复
/**
* 以指定的字符右填充,如果源字符串长度大于等于指定的长度,原样返回,否则补位
*
* @param value 需要填充的字串
* @param maxLen 填充后的长度
* @param way 填充字符的方向
* @return 充后的字串
*/
public static String addString(String value, int maxLen, String way) {
int length = maxLen - value.length();
String ret = value;

char[] letter = new char[length];
String temp = "";

if (length>0) { //判断要填充的个数
java.util.Arrays.fill(zero, 'A'); //填充的字符可自定义,也可传入指定的参数
String temp = new String(letter);

if (way.equals("L"))
ret = temp + ret; //左补位
else
ret = ret + temp ;//右补位
}
return ret;
}
emin_lee 2007-05-09
  • 打赏
  • 举报
回复
/**
* 以指定的字符右填充
*
* @param s 需要填充的字串
* @param len 填充后的长度
* @param c 指定的填充字符
* @return 右填充零后的字串
*/
public String padRight(String s, int len, char c) {

if (s == null) {
s = "";
}

s = s.trim();
if (s.length() >= len) {
return s;
}

int fill = len - s.length();

StringBuffer d = new StringBuffer(s);
while (fill-- > 0) {
d.append(c);
}

return d.toString();
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧