我需要你的一些指导,目前我面临这个练习的挑战:
此代码的目的是,如果sorIndex
在String
数组的范围内,则将String
(szoveg
(拆分为行,并返回结果row(sorIndex)
(String szoveg拆分为此数组(。
如果请求的行数不在有效范围内(数组的0长度(,则应返回null
值。测试练习的IDE返回一个错误,如下所示(匈牙利语+英语(:
"一个getSor((遇到了ódus nem müködik jól。Nem létezõsorIndexet megadvanull-t kell visszaadjon a metódus。一个结构或参数:;
"getSor((方法工作不正常。给定无效sorIndex,该方法应返回null。的参数构造函数:"-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;
}
我使用了三元运算符使其可读性更强、简洁简洁。