gpt4 book ai didi

java - 回文程序输出超出范围

转载 作者:行者123 更新时间:2023-11-30 03:57:43 25 4
gpt4 key购买 nike

我对编程很陌生。你能告诉我为什么会输出:

string index out of range: -1

class Palindrome {

public static String reverse(String s) {
if (s == "") {
return s;
}
else {
return reverse(s.substring(1,s.length())) + s.charAt(0);
}
}

public static void main(String args[]) {
System.out.print(reverse("galskjdf"));
}
}

最佳答案

使用

class Palindrome {
public static String reverse(String s) {
if ("".equals(s)) {
return s;
} else {
return reverse(s.substring(1,s.length())) + s.charAt(0);
}
}

public static void main(String args[]) {
System.out.print(reverse("galskjdf"));
}
}

参见How do I compare strings in Java?Reverse a string in Java可能也会有帮助(即使您可能将上述代码作为编程练习来完成,但知道通常人们会使用现有的工具来完成此类事情也没有什么坏处)。

使用原因

"".equals(s)

而不是

s.equals("")

如下:如snull ,后者会抛出 NullPointerException (因为您尝试在 null 上调用方法),而当您在“正确”字符串上调用方法时,前者仍然有效,另请参阅 Gracefully avoiding NullPointerException in Java然而,我记得也有人批评这种方法,因为这可能会让你错过 s 的事实。是 null当它不应该的时候(在这种情况下你应该明确检查处理这种情况)。

关于java - 回文程序输出超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716105/

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