我正在做一个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++;
}
}
}}
发布于 2017-08-26 10:47:02
您似乎混淆了字符串和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"))
在这里,您试图将carsi元素与字符串"numOfHonda".If进行比较,查看您的代码,没有声明为“numofHonda”的字符串。有一件事是int类型变量。
方法不将int类型与字符串进行比较。它总是将字符串与字符串进行比较。事实上,您已经将int变量numofHonda放入“”中,这并不意味着这是一回事!"numofHonda“和numHonda是不同的东西!
honda[i] = numOfHonda;
你被困在这里是因为你知道你在这里做什么?您正在尝试放置int类型变量(numOfHonda是int类型的,记得吗?)在字符串数组中。这是不可能的这是一种类型错配。任何类型的Array的基本定义是它拥有相同类型的元素。因此,honda[]不能存储int类型值。
希望你现在有个更好的视野。继续学习。
发布于 2017-08-26 00:18:39
如果允许您使用Java 8,这将非常简单。这是密码。
String[] cars = {"honda", "toyota", "honda", "toyota"};
Map<String, Long> data = Arrays.stream(cars)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(data); // => {toyota=2, honda=2}发布于 2017-08-26 08:52:05
使用树状地图-简单而精确的解决方案
String[] cars = {"honda", "toyota", "honda", "toyota"};
TreeMap<String, Integer> map = new TreeMap<>();
for(String s: cars){
int count = map.containsKey(s) ? map.get(s) : 0;
map.put(s, count+1);
}
System.out.println(map);输出
{honda=2, toyota=2}https://stackoverflow.com/questions/45890766
复制相似问题