gpt4 book ai didi

Java 返回问题

转载 作者:行者123 更新时间:2023-12-02 03:03:39 24 4
gpt4 key购买 nike

好的,我有以下代码,无论它返回给我一个-1。我想要这样,如果 id 匹配,那么它会返回索引,但如果在运行整个数据集后不匹配,它会返回一个负值。我哪里出错了:

public class StudentCollection {

private String[] ids = new String[] {"Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty"}; // keeps identification numbers of students
private String [] names = new String[] {"Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty","Empty"};; // keeps the names of students
private int size = 0; // number of students currently in the collection


private int findIndex(String id) {
int noIndex = 1;
for (int i=0;i<ids.length;i++){
if((ids[i].equalsIgnoreCase(id))){
System.out.println("The index of this student is " +i);
}

else {
noIndex = -1;
System.out.println(noIndex);
break;}
}

return noIndex;
}

最佳答案

这里是如果找到索引则返回其编号的解决方案,否则如果在检查整个数组后没有找到,则返回 -1 并打印适当的字符串。

private int findIndex(String id) {
int noIndex = -1;
for (int i = 0; i < ids.length; i++) {
if (ids[i].equalsIgnoreCase(id)) {
System.out.println("The index of this student is " + i);
return i;
}
}
System.out.println(noIndex);
return noIndex;
}

您还可以使用 Java 8 Stream:

private int findIndex(String id) {
OptionalInt index = IntStream.rangeClosed(0, ids.length-1)
.filter(i -> ids[i].equalsIgnoreCase(id))
.findFirst();
if(index.isPresent()) {
int i = index.getAsInt();
System.out.println("The index of this student is " + i);
return i;
}
System.out.println(-1);
return -1;
}

关于Java 返回问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078850/

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