java - 在 CodingBat 上为 2 个字符串的 substring() 逻辑苦苦挣扎

标签 java string

我已经解决了好几次,但我无法弄清楚 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 = "AB" 调试捕获: enter image description here

如果子字符串是从 1 到 2 那么它会显示字母 B: enter image description here

所以你只会看到结果 str.charAt(str.length()-1) + str.charAt(0) 哪个是 B 和 A。

关于java - 在 CodingBat 上为 2 个字符串的 substring() 逻辑苦苦挣扎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63526268/

相关文章:

c# - 为什么支付网关只用Java语言设计?

android - 将 String 转换为 Double 以便在 LatLng/Google map 中使用

java - 从不同数组转换为标准形式

比较字符串与C中的整数

mysql - 如何在不使用 ENUM 的情况下强制执行 MySQL 表中的某些字符串?

java - 正则表达式匹配字符串的多个实例

java - 是否有从其他 Activity 类访问 MainActivity 的解决方案?

java - JasperReports 包括 PDF 末尾的空白页

java - 自动生成 ID

java - 打印按长度排序的字符串的所有可能的子字符串