public String foodstats (){
    String foodstats = "";
    for ( int i = 0; i < consumables.size(); i++){
         foodstats =  "Name: " + consumables.get(i).getName() + "\tNutrition: " + consumables.get(i).getNValue() + "\tStamina: " + consumables.get(i).getStamina() + "\n" ;
   }
    return foodstats;
}


所以这返回:Name: Water Nutrition: 30 Stamina : 15

我知道为什么这样做,第二次for循环通过它替换第一项的统计信息,并仅返回替换后的统计信息。

有没有解决的办法?我需要根据数组列表大小返回所有项目的统计信息。

最佳答案

我认为您正在寻找的是StringBuilder,在这种情况下比+=串联更有效:

public String foodstats (){
    StringBuilder foodstats = new StringBuilder();
    for ( int i = 0; i < consumables.size(); i++){
         foodstats.append("Name: " + consumables.get(i).getName() + "\tNutrition: " + consumables.get(i).getNValue() + "\tStamina: " + consumables.get(i).getStamina() + "\n");
   }
    return foodstats.toString();
}

10-07 23:02