java - 组合字符串及其反向的递归方法
问题描述
每个人。我对java很陌生,所以我希望我的问题听起来不是很愚蠢,但是我在进行在线练习时遇到了麻烦。
基本上,我需要在java中编写一个递归方法,称为reverse,它接受一个String参数并返回一个与其反向连接的字符串。因此,例如,如果字符串是“Java”,它会将其返回为“JavaavaJ”
我编写了大部分代码,但无法弄清楚如何在 return 方法中将两者结合起来。
public static String reverse(String str) {
if ((null == str) || (str.length() <= 1)) {
return str;
}
return reverse(str.substring(1)) + str.charAt(0);
}
解决方案
您还需要在要反转的字符串前面加上第一个字符。像这样的东西应该工作:
public String reverse(String str) {
if (null == str) {
return null;
}
if (str.length() <= 1) {
return str + str;
}
return str.charAt(0) + reverse(str.substring(1)) + str.charAt(0);
}
如果不添加第一个字符,递归只会产生字符串的反转。同样,当您位于最后一个字符时,也需要将整个字符串附加两次(例如,使用此逻辑反转的“a”似乎应该产生“aa”)
推荐阅读
- c# - 远程服务器返回错误:(502) Bad Gateway。在 MVC 中
- raspberry-pi3 - 启动时的 net-snmp 说 - Raspberry pi 中的“打开指定端点时出错” - 杰西卡
- php - 我无法在 pdo 中绑定到日期
- django - pycharm 中导入模型的 Intellisense 问题
- php - 通过 PHP 的 CSV 重复第一个条目
- c# - 尝试上传文件时,发生 FileBufferingReadStream.ThrowIfDisposed() 错误
- r - 在 dplyr 过滤器中连接
- csv - 带有逗号分隔符的文件无法使用 awk 和 cut 提供正确的结果
- javafx - 即使程序正在运行,我的 GUI 也不会显示。吨
- java - 有没有办法在 JRuby 中为 Java 对象获得良好的“#inspect”输出?