【发布时间】:2019-09-11 19:07:10
【问题描述】:
希望使用递归返回 char 数组中 char ':' 后跟 char ')' 的次数。
public class Recursion {
public static int countSmiles(char[] numbers) {
if (numbers.length == 0) return 0;
if(String.valueOf(numbers[0])== ":" && String.valueOf(numbers[1])==")") return 1 + countSmiles(numbers[1]);
return countSmiles(numbers[1]);
}
public static void main (String[] args) {
char[] s = {'n','g', ':' ,')', ':' ,')'};
System.out.println(countSmiles(s));
}
}
我希望输出为 2。
我能够使用字符串成功地做到这一点(见下文),但无法使用 char 数组做到这一点。
public static int countSmiles(String numbers) {
if (numbers.length() == 0) return 0;
if (numbers.charAt(0) == ':'&& numbers.charAt(1)==')') return 1 + countSmiles(numbers.substring(1));
return countSmiles(numbers.substring(1));
}
【问题讨论】:
标签: java arrays recursion char