Java String 後面加空格的幾種方法
1.StringUtils
import org.apache.commons.lang3.StringUtils;
StringBuilder mBuffer1 = new StringBuilder("");
mBuffer1.append(StringUtils.rightPad("測試", 10, " ")
+
+", β/γ:"+StringUtils.rightPad("12.6", 10, " ")
+"\r\n");
System.out.print(mBuffer1);
2.String.format
StringBuilder mBuffer = new StringBuilder("");
mBuffer.append(String.format("%-5s", "測試")
+
+", β/γ:"+String.format("%-10f",12.6)
+"\r\n");
System.out.print(mBuffer);
鑑於上述2種方法都沒有很好的達成目的,所以:
3.自己寫
參考 https://www.cnblogs.com/whycxb/p/5063363.html
StringBuilder mBufferET = new StringBuilder("");
mBufferET.append(addBlank("測試",10)+
": α:"+addBlankNum("126", 10)+
", β/γ:"+addBlankNum("12.6",10)+"\r\n");
mBufferET.append(addBlank("測試啊啊啊",10)+
": α:"+addBlankNum("128.99",10)+
", β/γ:"+addBlankNum("12.6",10)+"\r\n");
System.out.print(mBufferET);
public static String addBlank(String str, int length)
{
if (str == null)
{
str="";
}
int strLen = str.getBytes().length;
//System.out.println(strLen);
int lengthPerChar = strLen/str.length();
//System.out.println(lengthPerChar);
if (strLen == length)
{
return str;
}
else if (strLen < length)
{
int temp = length - strLen;
String tem = "";
for (int i = 0; i < temp; i++)
{
for (int j = 0; j < lengthPerChar; j++)
{
tem = tem + " ";
}
}
return str + tem;
}
else
{
return str;
}
}
public static String addBlankNum(String str, int length)
{
if (str == null)
{
str="";
}
int strLen = str.getBytes().length;
//System.out.println(strLen);
int lengthPerChar = strLen/str.length();
//System.out.println(lengthPerChar);
if (strLen == length)
{
return str;
}
else if (strLen < length)
{
int temp = length - strLen;
String tem = "";
//if(str.contains(".")) tem = tem + " ";
for (int i = 0; i < temp; i++)
{
for (int j = 0; j < lengthPerChar; j++)
{
tem = tem + " ";
}
}
return str + tem;
}
else
{
return str;
}
}
漢字效果較好,數字效果仍待改進。