java - java - 如何递归地将给定字符串中的每个字母大写并在java中返回结果字符串?
问题描述
我正在尝试递归地将给定字符串中的每个字母大写。我试过这段代码:
public static String recs(String s){
return Character.toString(Character.toUpperCase(s.charAt(0)))+recs(s.substring(1));
}
但是这段代码显示 java.lang.StringIndexOutOfBoundsException: String index out of range: 0 异常。
解决方案
您需要一个返回“”的空字符串的退出条件,否则它会尝试获取空数组的第一个索引,这会导致错误。
代码:
if(s.isEmpty()) {
return s;
}
return Character.toString(Character.toUpperCase(s.charAt(0)))+recs(s.substring(1));
推荐阅读
- windows - 是否可以防止以全屏模式运行的进程修改鼠标指针移动?
- reactjs - 向功能组件添加 forwardRef 是一项重大更改吗?
- reporting-services - 从日历层次结构 ssrs 设置过去两个月的默认值
- bash - UNIX Shell 脚本:列出每个文件系统中的所有文件和目录,包括大小
- excel - 从一个工作表复制到另一个加上最后一行
- php - 有效的请求签名生成
- scala - 如何使用 Spark Scala Dataframe 计算每列中重复值和唯一值的数量?
- javascript - 为什么console.log不能写提示信息?
- qt - 如何知道 QThread 是否正确退出或被终止?
- apache - 在 httpd.conf 中设置标头而不是在 .htaccess 中设置标头