gpt4 book ai didi

java - 传递两个字符串数组并计算Java中x数组中y数组的出现次数

转载 作者:行者123 更新时间:2023-11-29 07:56:45 25 4
gpt4 key购买 nike

我创建了一个 Java 方法,当传递两个字符串数组 x 和 y 时,它会计算出现在 y 中的每个字符串出现在 x 中的次数,并按照字符串出现在 y 中的顺序打印结果。例如,查看 main 函数,它应该输出为 ab: 2, dc: 1, ef: 0。我的代码没有工作,因为它输出 ab: 1, ab: 2, dc: 3。

public class stringOccurInArray {
public static void stringOccurInY(String[] x, String[] y) {
int count = 0;
for(int i=0; i<x.length; i++) {
for(int j=0; j<y.length; j++) {
if(y[j].contains(x[i])) {
count++;
System.out.println(y[j] + ": " + count);
}
}
}
count = 0; // reset the count
}

public static void main(String[] args) {
String[] a = {"ab", "cd", "ab", "dc", "cd"};
String[] b = {"ab", "dc", "ef"};

stringOccurInY(a, b);
}
}

最佳答案

有几件事要提一下。像这样重写代码会更容易:

public static void stringOccurInY(String[] x, String[] y) {
int count = 0;
for (int i = 0; i < y.length; i++) {
for (int j = 0; j < x.length; j++) {
if (y[i].contains(x[j])) {
count++;
}
}
System.out.println(y[i] + ": " + count);
count = 0; // reset the count
}
}

您应该首先迭代 y。

您也可以通过 foreach 循环替换迭代。

for (String aY : y) {
int count = 0;
for (String aX : x) {
if (aY.contains(aX)) {
count++;
}
}
System.out.println(aY + ": " + count);
//no need to reset the count
}

关于java - 传递两个字符串数组并计算Java中x数组中y数组的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com