首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将相同的字符串数组排序为新字符串并对其进行计数。

如何将相同的字符串数组排序为新字符串并对其进行计数。
EN

Stack Overflow用户
提问于 2017-08-26 00:10:21
回答 4查看 116关注 0票数 1

我正在做一个java项目,我希望对相同的字符串数组进行排序,然后计算每个汽车品牌的数量。我只能将数组传递到int变量中。需要建议。谢谢。

代码语言:javascript
复制
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++;
        }
    }

}

}

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-08-26 10:47:02

您似乎混淆了字符串和int值。既然你说你正处于编程的第一周,从我从问题中了解到的情况来看。这就是你想要做的:-

代码语言:javascript
复制
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将分别给你洪达斯和丰田章男的数量。

除了我的答案,我想解决我在您的代码中发现的一些错误。

代码语言:javascript
复制
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类型值。

希望你现在有个更好的视野。继续学习。

票数 1
EN

Stack Overflow用户

发布于 2017-08-26 00:18:39

如果允许您使用Java 8,这将非常简单。这是密码。

代码语言:javascript
复制
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}
票数 1
EN

Stack Overflow用户

发布于 2017-08-26 08:52:05

使用树状地图-简单而精确的解决方案

代码语言:javascript
复制
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);

输出

代码语言:javascript
复制
{honda=2, toyota=2}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45890766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档