首页 > 解决方案 > 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 异常。

标签: java

解决方案


您需要一个返回“”的空字符串的退出条件,否则它会尝试获取空数组的第一个索引,这会导致错误。

代码:

if(s.isEmpty()) {
        return s;
    }

return Character.toString(Character.toUpperCase(s.charAt(0)))+recs(s.substring(1));

推荐阅读