1

任意の長さの String[] を取得して、できればフィールドセパレータを使用して、文字列に出力しようとしています。今私は持っています:

String[] start = {"first", "second", "third"}; //[] to convert
String cC = "";
String finish = ""; // Final String
String cC1 = "";
{
    for (int i = 0; i < puts.length; i++) {
        cC = puts[i] + ", ";
        cC1 = (finish + cC);
        finish = cC1;
    }
}

しかし、何らかの理由で「2番目」の値しか返されていません。値を適切に連結するにはどうすればよいですか?

また、を使用してコードを簡素化できfinish += cCますか? ありがとう。

4

5 に答える 5

1

文字列に追加したい場合は、+=を使用する必要があります 。

String[] start = {"first", "second", "third"};
String cc = "";
String separator = ",";

for (int i = 0; i < start.length; i++) {
    cc += start[i];
    //Not Add , if it is the last element.
    if(i!=start.length-1){
       cc+=separator;
    }
}

あなたの方法で、最後の値を設定して終了します。

于 2013-08-02T19:27:16.687 に答える
0

+= 演算子を使用して文字列を連結するのは非常に悪い考えです。StringBuilder オブジェクトを構築し、それにすべての値を追加することをお勧めします。最後に、StringBuilder オブジェクトで toString() を呼び出します。

このリンクを見て、文字列連結に + 演算子を使用することに関連するパフォーマンス ヒットを理解してください。
http://blog.eyallupu.com/2010/09/under-hood-of-java-strings.html
Java は "+" を使用して文字列を連結する方法を教えてください。

于 2013-08-02T19:27:59.073 に答える
0
String[] start = {"first", "second", "third"}; //[] to convert
String finish = ""; // Final String
{
    for (int i = 0; i < starts.length; i++) {
        finish = finish + start[i] + ", ";
    }
}

(何らかの理由でこれらすべてを手動で行いたい場合...)

于 2013-08-02T19:28:22.853 に答える
0

チェックアウト -- C# の String.Format() および String.Join() に相当する Java

これにより、string.join メソッドが提供されるだけでなく、便利な文字列ユーティリティ メソッドについても読むことができます。

于 2013-08-02T19:36:16.373 に答える