我正在做一个Java项目,我想对相同的字符串数组进行排序,然后计算每个汽车品牌有多少个。我被困传递数组到int变量。需要建议。谢谢。
public class SortCars {
public static void main(String[] args) {
String[] cars = {"honda", "toyota", "honda", "toyota"};
String[] honda = new String[5];
String[] toyota = new String[5];
int numOfHonda;
int numOfToyota;
for (int i = 0; i < cars.length; i++) {
if (cars[i].equals("numOfHonda")) { //
honda[i] = cars[i];
honda[i] = numOfHonda; // stuck here
numOfHonda++;
}
}
}
}
最佳答案
您似乎对String和int值感到困惑。因为您说的是编程的第一周,并且从我从问题中了解的内容出发。这就是您想要做的:-
public static void main(String[] args) {
String[] cars = {"honda", "toyota", "honda", "toyota"};
String[] honda = new String[5];
String[] toyota = new String[5];
int numOfHonda = 0; // you need to initialize these int variables
int numOfToyota = 0;
for (int i = 0; i < cars.length; i++) {
if (cars[i].equals("honda")) { // if cars has element honda
honda[i] = cars[i]; // putting cars element in honda array
numOfHonda++; //incrementing value of numOfHonda by 1
}
else if(cars[i].equals("toyota")){
toyota[i] = cars[i];
numofToyota++;
}
}
现在,打印numOfHonda和numofToyota将分别为您提供本田和丰田的数量。
除了我的回答,我还要解决在代码中发现的一些错误。
int numOfHonda; //initilize your variable. Otherwise you will get compilation error! make it = 0 in this case.
int numOfToyota; // same here, initialize to 0.
if (cars[i].equals("numOfHonda"))
在这里,您尝试将cars [i]元素与字符串“ numOfHonda”进行比较。如果您查看代码,则没有这样的字符串声明为“ numofHonda”。有一件事情是int类型变量
equals()方法不将int类型与String进行比较。它总是将String与String进行比较。而且,您已经将int变量numofHonda放入了“”这一事实与事实不符! “ numofHonda”和numHonda是不同的东西!
honda[i] = numOfHonda;
你被困在这里是因为你知道你在这里做什么?
您正在尝试放置int类型变量(numOfHonda是int类型的记忆吗?)
在String数组中。这是不可能的。这是类型不匹配。任何类型的数组的基本定义是它拥有相同类型的元素。因此,honda []无法存储int类型值。
希望您现在有更好的视野。保持学习。