クラスのすべてのデータメンバーを含む単一の文字列を生成する必要があります。たとえば、クラス定義が
class A
{
private String field1;
private String field2;
private String field3;
...
...
}
次に、field1、field2、field3をこの順序で含む文字列を生成します。ただし、私がやりたい追加のことは、次のルールを確認することです-
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.
}
}