如何用java递归地将给定字符串中的每个字母大写并返回结果字符串

  • 本文关键字:字符串 结果 返回 递归 java 何用 java
  • 更新时间 :
  • 英文 :


我正在尝试递归地将给定字符串中的每个字母大写。我试过这个代码:

public static String recs(String s){
return Character.toString(Character.toUpperCase(s.charAt(0)))+recs(s.substring(1));
}

但这段代码显示java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0异常。

当字符串为空时,您需要添加一个基本情况:

public static void main(String[] args) {
System.out.println(recs("hello world"));
}
public static String recs(String s){
if(s.length() == 0) { return s; }
return Character.toUpperCase(s.charAt(0)) + recs(s.substring(1));
}

输出:

HELLO WORLD

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

代码:

if(s.isEmpty()) {
return s;
}
return Character.toString(Character.toUpperCase(s.charAt(0)))+recs(s.substring(1));

String为空或所有字符都已大写时,您不会处理基本情况。

public static String recs(String s){
return s.isEmpty() ? s : Character.toUpperCase(s.charAt(0)) + recs(s.substring(1));
}

演示

最新更新