我已经解决了好几次,但我无法弄清楚 CodingBat 的解决方案代码如何正确返回两个字符串。
这是他们的解决方案:
public String frontBack(String str) {
if (str.length() <= 1) return str;
String mid = str.substring(1, str.length()-1);
// last + mid + first
return str.charAt(str.length()-1) + mid + str.charAt(0);
}
但为什么这对两个字符串有效?如果 str = "AB"代码不应该返回 "B"(返回的第一部分)+ "B"(在这种情况下不会 mid="B")和 "A"...那么 "BBA"?我想我缺少一些关于如何使用 2 个字符的字符串创建 String mid 的逻辑。谢谢!
最佳答案
我建议安装 Eclipse 或其他 IDE 并在 Debug 中运行示例。这是学习 JAVA 的最佳途径之一。从您的示例中,我可以告诉您以下内容: Mid 将为空,因为正在从位置 1 到 1 生成子字符串 => 长度 = 0
所以你只会看到结果 str.charAt(str.length()-1) + str.charAt(0) 哪个是 B 和 A。
关于java - 在 CodingBat 上为 2 个字符串的 substring() 逻辑苦苦挣扎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63526268/