0

concat操作に文字列を使用しています。より効果的であるため、stringbuffer/stringbuilderを使用したいと思います。

元のコード:

List<BDDObject> childlist; 
String newassetReferenceType = new String();

for (int i = 0; i < childlist.size(); i++)
{
newassetReferenceType = ((String) childlist.get(i).getValue(IDDConstants.IDD_COMPOUND_ASSET_REF_TYPE_NAME)).toLowerCase().trim().concat(((String) childlist.get(i).getValue(
IDDConstants.IDD_COMPOUND_ASSET_REF_VALUE)).trim());

}

だから私はそれを変更されたコードとして変更しようとしました:

List<BDDObject> childlist; 
StringBuffer newassetReferenceType = new StringBuffer();

for (int i = 0; i < childlist.size(); i++)
{
newassetReferenceType = ((String) childlist.get(i).getValue(IDDConstants.IDD_COMPOUND_ASSET_REF_TYPE_NAME)).toLowerCase().trim().append(((String) childlist.get(i).getValue(
IDDConstants.IDD_COMPOUND_ASSET_REF_VALUE)).trim());

}

現在、trim()メソッドとtoLowerCase()メソッドを使用できないというエラーがあります。しかし、とにかくそれらを使用する必要があります。誰かがtrim()とtoLowerCase()を利用して、StringBufferを使用する方法を教えてもらえますか?

4

1 に答える 1

1

ソリューションは問題なく機能するはずです。かっこが少しずれていると思います。StringBufferに追加する前に、文字列に対してtrim()およびtoLowerCase()操作を実行する必要があります。

適切な括弧を使用して、概念を説明するためにコードを書き直しました。自由に再フォーマットして1行にまとめてください。ただし、この方法の方が読みやすく、間違いが少ないと思います。

List<BDDObject> childlist; 
StringBuffer newassetReferenceType = new StringBuffer();

for (int i = 0; i < childlist.size(); i++)
{
    var value1 = (String) childlist.get(i).getValue(IDDConstants.IDD_COMPOUND_ASSET_REF_TYPE_NAME);
    var value2 = (String) childlist.get(i).getValue(IDDConstants.IDD_COMPOUND_ASSET_REF_VALUE);

    newassetReferenceType.Append(value1.toLowerCase().trim())
    .append(value2.trim());
 }
于 2012-08-10T14:38:23.130 に答える