/** * 以指定的字符右填充 * * @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(); }
/** * 以指定的字符右填充,如果源字符串长度大于等于指定的长度,原样返回,否则补位 * * @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; }
抱歉,忘记改了一个变量,我原来的程序是补零的,所以也定义成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; }
填充字符串 /** * 以指定的字符串右填充 * * @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, 长度是10ABC = substr(ABC,s1,10) ---------- 12ABABABAB ----------如果源字串长度大于所需长度, 返回所需长度字串 ABC="121212"; ABC = substr(ABC,s2,5); ---------- 12121 ----------
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"
* 以指定的字符右填充
*
* @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();
}
* 以指定的字符右填充,如果源字符串长度大于等于指定的长度,原样返回,否则补位
*
* @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;
}
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;
}
/**
* 以指定的字符串右填充
*
* @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, 长度是10ABC = substr(ABC,s1,10)
----------
12ABABABAB
----------如果源字串长度大于所需长度, 返回所需长度字串
ABC="121212";
ABC = substr(ABC,s2,5);
----------
12121
----------
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"