编码一个名为countStudentsPerFaculty的方法,它接受一个字符串作为输入,表示一个教员姓名,并返回一个整数值,表示该教员中的学生数量。
例如:
如果注册ArrayList具有[“John|FIT”,”Tim|Law”,”Emma|FIT”]
Input “FIT”
return 2,
Input “Law”
return 1,
Input “Business”
return 0我是爪哇的初学者。我已经使用.split()方法来拆分数组中的字符串。但是我没有得到我想要的输出。
public int countStudentsPerFaculty(String facultyName) {
int numberOfStudents = 0;
for (String elem: enrollment) {
String[] nameOfFaculty = elem.split("|");
numberOfStudents++;
}
return numberOfStudents;
}这是我的代码。我的代码将每个教员的输出返回为3。我哪里错了?提前谢谢你。
发布于 2021-05-05 20:44:33
当你调用String.split(String regex)时,你会得到一个字符串数组。例如,如果我获取第一个字符串"John|FIT",它将返回一个数组:{"John", "FIT"}。你没有对字符串数组进行任何操作,所以for循环基本上是无用的。您所要做的就是在每次迭代数组中的字符串时,通过将numberOfStudents的值递增1来获取数组中的元素数。由于数组中有3个字符串,countStudentsPerFaculty返回3。@Zahra的答案给出了正确的代码,但我认为澄清工作原理是很重要的。
让我们以相同的字符串为例:"John|FIT"。for循环的第一条语句接受数组{"John", "FIT"}中的第二个字符串。if语句检查学院的名称,在本例中为"FIT",是否等于该方法的参数。如果是,则numberOfStudents加1。此过程适用于注册中的所有字符串。为了更清晰,您可以复制@Zahra的代码,并尝试对其进行调试。
此外,正如@Eritrean所指定的,split()方法的参数( "|“)应该使用2个反斜杠("\|")进行转义,因为它接受正则表达式字符串,因为”|“是特殊的正则表达式。
https://stackoverflow.com/questions/67400609
复制相似问题