0

メソッド呼び出しを使用して int 配列から文字列を返す必要があるプログラムを使用しています。これは私がこれまでに持っているメソッドです (このヘッダーとパラメーターでメソッドを使用する必要があります)

    public String toString()
{
for (int i=0;i<NUM_POCKETS;i++)
    {
    this.getPocketCount(i);
    }
}

私は基本的に、すべての「ポケット」(配列項目) を通過し、格納された値を返される String に返すループが必要です。

非常に明白な何かが欠けている可能性がありますが、私の人生では、この情報がどのように保存され、ドライバーに文字列として返されるのかわかりません。ループ ロジックがあることはわかっていますが、ループの進行に合わせて i の各インクリメントを文字列に格納するにはどうすればよいでしょうか。

助けてくれてありがとう!

4

4 に答える 4

3

" I am working with a program in which I need to use a method call to return a String from an int array."

これが宿題ではない場合は、単純に を使用できますArrays.toString(int[] array)

String myString = Arrays.toString(myIntArray);

それ以外の場合は、次のようなことができます。

String getStringFromIntArray(int[] array) {
  StringBuilder builder = new StringBuilder();
  for (int num : array)
    builder.append(num)
  return builder.toString();
}
于 2013-10-24T21:43:59.330 に答える
1

this.getPocketCount(i);位置 i の配列の値が得られる限り:

public String toString() {
    String returnstring= "";    //init empty string
    for (int i = 0; i < NUM_POCKETS; i++) {
        returnstring += this.getPocketCount(i)+" "; //append(concat) to string
    }
    returnstring = returnstring.substring(0, returnstring.length()-1);  //remove the last " "
    return returnstring;    //return string
}

+記号は次の文字列を追加 "Hello"+" "+"World"します"Hello World"

編集:

public String toString() {
    String returnstring= "";    //init empty string
    for (int i = 0; i < NUM_POCKETS-1; i++) { //-1 to place last later
        returnstring += this.getPocketCount(i)+" "; //append to string
    }
    returnstring += this.getPocketCount(NUM_POCKETS-1)  //append the last value
    return returnstring;    //return string
}
于 2013-10-24T21:49:55.980 に答える
1

StringBuilder クラスを調べてみてください。Java 6 の仕様はこちらです。

http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html

StringBuilder オブジェクトが必要で、.append() 関数を使用してオブジェクトに値を追加するだけです。

于 2013-10-24T21:44:47.093 に答える
0

ループ内から文字列を構築したい場合は、StringBuilder. が提供するワンライナーよりも冗長ですArrays.toString()が、あなたはそれを求めました:

例えば

public String toString() {
    StringBuilder sb = new StringBuilder(NUM_POCKETS);
    for (int i = 0; i < NUM_POCKETS; i++) {
        sb.append(this.getPocketCount(i));
    }
    return sb.toString();
}

ループ内で aを使用するStringBuilderと、個々の要素を連結するよりも高速になります。参照: Java で StringBuilder を使用する場合

于 2013-10-24T22:02:27.160 に答える