gpt4 book ai didi

java - 使用递归从字符串中提取元音?

转载 作者:行者123 更新时间:2023-12-02 04:20:36 24 4
gpt4 key购买 nike

不确定此代码是否有效?或者是否有另一种方法可以更简单地编写它?

public static String extractVowels(String s, StringBuilder x, int i){
if(i < s.length()){
if(s.charAt(i)== 'a' || s.charAt(i)== 'e' || s.charAt(i)== 'i' ||
s.charAt(i)== 'i' || s.charAt(i)== 'o' || s.charAt(i)== 'u'){
x = new StringBuilder(s);
return extractVowels(s,x.deleteCharAt(i), i+1);
}
}
return null;
}

最佳答案

假设您将此作为练习递归的学习练习,那么您需要考虑以下内容:

  • 让您的方法返回结果,而不是将其附加到 StringBuilder
  • 从空字符串中删除元音会生成空字符串
  • 从以元音开头的字符串中删除元音与从子字符串中删除元音(即删除第一个字符)相同
  • 从不以元音开头的字符串中删除元音是第一个字符,后跟从剩余子字符串中删除元音的结果。

英文描述比Java代码长很多:

public static String extractVowels(String s) {
if (s.length() == 0) {
return s;
}
char c = s.charAt(0);
if (c == 'a' || c == 'e' || ...) {
return extractVowels(s.substring(1));
} else {
return c+extractVowels(s.substring(1));
}
}

关于java - 使用递归从字符串中提取元音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com