gpt4 book ai didi

java - 根据另一个数组的值重写一个 Java 数组

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:45 24 4
gpt4 key购买 nike

我一直在一个 Java 小项目中工作,但我不知道如何根据另一个数组上的值覆盖一个数组的元素。

基本上我有两个数组:repeated[] = {1,4,0​​,0,0,3,0,0}hand[] = {1,2, 2,2,2,6,6,6} 并且我使用 repeated[] 来计算数字出现在 hand[] 上的次数,如果它在 3 到 7 之间,它应该用零覆盖 hand[] 中的相应元素,但我一直得到这个输出 {1,0,0,2,2,6, 0,6} 当它应该给我 {1,0,0,0,0,0,0,0} 时。我做错了什么?

public static void main(String[] args) {
int repeated[] = {1,4,0,0,0,3,0,0};
int hand[] = {1,2,2,2,2,6,6,6};
for(int z=0;z<repeated.length;z++){
if(repeated[z]>=3 && repeated[z]<8){
for(int f:hand){
if(hand[f]==(z+1)){
hand[f]=0;
} } } }
for(int e:hand){
System.out.print(e+",");
}
}

最佳答案

首先,repeated 中的值偏移了一个(因为 Java 数组从索引零开始)。接下来,您需要测试该值是否为 >= 3(因为 6 只出现了 3 次)。而且,你可以使用 Arrays.toString(int[])打印你的数组。类似的东西,

public static void main(String[] args) {
int repeated[] = { 1, 4, 0, 0, 0, 3, 0, 0 };
int hand[] = { 1, 2, 2, 2, 2, 6, 6, 6 };
for (int z = 0; z < repeated.length; z++) {
if (repeated[hand[z] - 1] >= 3) {
hand[z] = 0;
}
}
System.out.println(Arrays.toString(hand));
}

输出是

[1, 0, 0, 0, 0, 0, 0, 0]

关于java - 根据另一个数组的值重写一个 Java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908799/

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