如果 "sorIndex" 无效,我的代码中的结果不为空
Result not null in my code, if "sorIndex" is invalid
我需要你的一些指导,目前我面临着这个练习的挑战:
此代码的目的是将 String
(szoveg
) 拆分为行并返回结果 row(sorIndex)
作为结果,如果 sorIndex
在String
数组的范围内(字符串szoveg被拆分到这个数组中)。
如果请求的行数不在有效范围内(数组的 0 长度),它应该返回一个 null
值。 IDE为测试习题returns一个错误,是下面的(匈牙利语+英语):
"A getSor() metódus nem működik jól. Nem létező sorIndexet megadva
null-t kell visszaadjon a metódus. A konstruktor paramétere:"
"The getSor() method is not working properly. Given a not valid
sorIndex, the method should return null. The parameter of the
constructor:" -there is nothing after this part in the IDE.
public String getSor(int sorIndex) {
int sorok= szoveg.split("\n").length;
String sor;
if (sorIndex >= 0 && sorIndex <= sorok) {
String[] stringTomb = new String[sorok];
stringTomb = szoveg.split("\n");
sor = stringTomb[sorIndex];
} else {
sor = null;
}
return sor;
}
有谁知道我哪里出错了吗?
谢谢!
错误消息告诉您,如果传递了无效的 sorIndex
,则应返回 null
。这意味着它不是进入您逻辑中的 else
分支,而是以无效的方式进入 if
。
原因是数组是从 0 开始索引的,因此您应该严格地与行 (sorok
) 进行比较:
if (sorIndex >= 0 && sorIndex < sorok) {
这应该可以解决问题。但是,您的代码多次计算 split
并且是多余的。我会将其重构为:
public String getSor(int sorIndex) {
if (szoveg == null) return null; // Handling the case when szöveg is not properly initialized
String stringTomb[] = szoveg.split("\n");
return ((sorIndex >= 0) && (sorIndex < szoveg.length)) ? stringTomb[sorIndex] : null;
}
我使用了三元运算符来使其更具可读性、简洁和简短。
我需要你的一些指导,目前我面临着这个练习的挑战:
此代码的目的是将 String
(szoveg
) 拆分为行并返回结果 row(sorIndex)
作为结果,如果 sorIndex
在String
数组的范围内(字符串szoveg被拆分到这个数组中)。
如果请求的行数不在有效范围内(数组的 0 长度),它应该返回一个 null
值。 IDE为测试习题returns一个错误,是下面的(匈牙利语+英语):
"A getSor() metódus nem működik jól. Nem létező sorIndexet megadva null-t kell visszaadjon a metódus. A konstruktor paramétere:"
"The getSor() method is not working properly. Given a not valid sorIndex, the method should return null. The parameter of the constructor:" -there is nothing after this part in the IDE.
public String getSor(int sorIndex) {
int sorok= szoveg.split("\n").length;
String sor;
if (sorIndex >= 0 && sorIndex <= sorok) {
String[] stringTomb = new String[sorok];
stringTomb = szoveg.split("\n");
sor = stringTomb[sorIndex];
} else {
sor = null;
}
return sor;
}
有谁知道我哪里出错了吗?
谢谢!
错误消息告诉您,如果传递了无效的 sorIndex
,则应返回 null
。这意味着它不是进入您逻辑中的 else
分支,而是以无效的方式进入 if
。
原因是数组是从 0 开始索引的,因此您应该严格地与行 (sorok
) 进行比较:
if (sorIndex >= 0 && sorIndex < sorok) {
这应该可以解决问题。但是,您的代码多次计算 split
并且是多余的。我会将其重构为:
public String getSor(int sorIndex) {
if (szoveg == null) return null; // Handling the case when szöveg is not properly initialized
String stringTomb[] = szoveg.split("\n");
return ((sorIndex >= 0) && (sorIndex < szoveg.length)) ? stringTomb[sorIndex] : null;
}
我使用了三元运算符来使其更具可读性、简洁和简短。