我必須生成一個包含一個類的所有數據成員的單個字符串。例如,如果一個類定義快速添加空白字符串的方法。
class A
{
private String field1;
private String field2;
private String field3;
...
...
}
然後我想生成包含字段1,依次場2和字段3的字符串。然而,我想要做的事情更多的是確保以下規則 -
field1 is of length 20. If it is less than 20, pad it with blank spaces.
field2 is of length 10. If it is less than 10, pad it with blank spaces.
field1 is of length 15. If it is less than 15, pad it with blank spaces.
...
...
我打算使用一個輔助類來建立這個字符串。我想使用一個StringBuilder來獲取最終的字符串。所以我有類似的東西 -
StringBuilder builder = new StringBuilder();
Helper.addString(field1,20,builder);
現在這個addString函數的實現是我所關心的。對於不同的類,這個函數將被調用數千次。所以我想盡可能提高效率。問題是,什麼是最有效的方法?目前,我有以下實現 -
public static void addString(String field, int totalLengthOfField, StringBuilder builder)
{
int lengthOfField = field.length();
int numberOfBlankSpacesToPutAfterString = totalLengthOfField - lengthOfField;
if(numberOfBlankSpacesToPutAfterString >=0)
{
builder.append(field);
for(int i=1; i<= numberOfBlankSpacesToPutAfterString; i++)
{
builder.append(" "); // append a blank space
}
}
else
{
// throw exception - field is longer than the maximum allowed length.
}
}
什麼是正在引起你的關注性能測量? – Jeremy
@JeremyHeiler,我只是想讓它運行得儘可能快。 – CodeBlue
我猜想花費一堆空格的子字符串比追加循環要快,但是沒有任何時間數據,我不會依賴直覺。你知道你有性能問題嗎? –