gpt4 book ai didi

java - 数组中的数组 : iteration doesn't recognize strings inside of it

转载 作者:行者123 更新时间:2023-11-29 04:09:23 25 4
gpt4 key购买 nike

<分区>

我无法读取二维数组中的元素。

为了语境化,用户提供这样的输入:

7  
1
2
3 1 2
4 3
5 4
6 3
7 5 6

第一个数字是下一个输入的数量(在我的代码中为 n)。接下来的每个第一个数字都是一门类(class),后面的数字是它的要求(也是类(class))。例如,类(class) 3 需要类(class) 1 和类(class) 2 获得批准。

我需要计算一个字符串在二维数组中出现的次数,但不考虑每个数组的第一个元素 (list1[i][0])。此外,第一行 list1[0] 未填充以使索引调用更容易(这就是为什么我的函数以 i=1 开头)。问题是它无法识别二维数组中的项目,因此计数始终返回 0。这是我的函数

static int count(String[][] list, String s, int n) { //n is the number of rows
int x=0;
for (int i=1;i<=n;i++) {
for (int j=1;j<list[i].length;j++) {
if (list[i][j]==s) {
x++;
}
}
}
return x;
}

该函数实际上适用于这样定义的数组:

String[][] list1= {{null},{"1"},{"2"},{"3","1","2"},{"4","3"},{"5","4"},{"6","3"},{"7","5","6"}};

例如,count(list1,"1",7) 返回 1 而 count(list1, "3",7) 返回 2。

但是对于输入被保存为字符串的数组 (list2),据说就像 list1,计数返回 0。

我初始化二维数组list2的方式:

 String[][] list2 = new String[n+1][];
String[] L1 = new String[n+1]; //just an auxiliary array
for (int j=1; j<=n; j++) {
list2[j] = new String[n+1];
L1[j] = sc.nextLine();
list2[j] = L1[j].split(" ");
}

奇怪的是,如果调用数组或 list2 的元素,它会返回应该返回的内容(例如,使用上面的输入,list2[3]=["3","1","2 "]) 但该功能不起作用。我在另一个作业中遇到了同样的问题,它与将数组添加到另一个数组有关,我无法解决它所以我改变了输入的保存方式,但现在由于限制我没有其他选择。

任何帮助将不胜感激

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