【问题标题】:Adding on to a string in a loop在循环中添加到字符串
【发布时间】:2014-06-05 01:30:06
【问题描述】:

我做了一个返回字符串的方法。我正在尝试通过这样的 for 循环来扩展字符串:

public static String averageFood(){
    String average = "";
    String temp = "";
    for (int i = 0; i < n1; i++){
        temp = myGerbils[i].name + " (" + (myGerbils[i].getLabID())+ ") " + (percentFood(i)) + "%" + "\n";
        average = temp + average;
    }
    return average;
}

它调用字符串中的另一个方法。当我运行它时,它运行良好,直到它到达 percentFood 方法;然后,我收到一个看起来像“[I@6158dd66”的错误。 percentFood 方法如下所示:

public static int[] percentFood(int i){
    int temp;
    int temp2;
    int[] ans = new int[n1];
    for (int j = 0; j < n1; j++){
        temp = myGerbils[i].getFoodCon(j);
        temp2 = gerbilFood[j].getMaxAm();
        ans[j] = (temp/temp2);
    }
    return ans;
}

有什么想法吗?谢谢!

【问题讨论】:

标签: java string loops methods


【解决方案1】:
[I@6158dd66  

这不是错误,您打印的是对象引用而不是它的值。

 (percentFood(i)) 

这将返回数组ans,如果你想打印数组,你可以直接连接它,你可以这样做。

Arrays.toString(ans);

或者如果你想通过数组元素创建StringTotal,你可以这样做。

int arr[]=(percentFood(i));

for(int j:arr)
{
//concat or total
}

【讨论】:

    【解决方案2】:

    percentFood 返回一个完整的数组,但在您的代码中,您正在调用 percentFood(i) - 这将返回一个完整的数组,并且由于数组是一个对象,您看到的错误实际上是内存中的空间对象已存储。

    你需要先获取数组,然后遍历它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-03
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 2015-07-31
      • 2022-11-30
      相关资源
      最近更新 更多