0

我正在使用一个程序,在该程序中我需要使用方法调用从 int 数组返回一个字符串。到目前为止,这就是我所拥有的方法(我需要使用带有此标头和参数的方法)

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

我基本上需要循环遍历我所有的“口袋”(数组项)并将存储的值返回到要返回的字符串中。

我可能会遗漏一些非常明显的东西,但是对于我的生活,我不明白这些信息将如何存储并作为字符串返回给驱动程序。我知道循环逻辑在那里,但是随着循环的进行,如何将 i 的每个增量存储到 String 中?

提前感谢您的帮助!

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

尝试查看 StringBuilder 类。Java 6 的规范在这里。

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

您需要一个 StringBuilder 对象,然后使用 .append() 函数将该值附加到该对象。

于 2013-10-24T21:44:47.093 回答
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 回答
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();
}

在循环内使用 aStringBuilder比执行每个单独元素的连接要快。请参阅:何时在 java 中使用 StringBuilder

于 2013-10-24T22:02:27.160 回答