java如何实现str与int递归,一次一个字符?
所以我被困在这个问题上,这里有一个方法equalNumbers(String str, int num)
,它确定str中的字符是否表示与num相同的数字。空字符串等于零
equalNumbers("123", 123) true
equalNumbers("9", 999) false
等等
这个方法应该是递归的,所以没有循环,也没有使用像Integer.parseInt
、Integer.valueOf
和integer.decode()
这样的东西。允许使用助手函数
它鼓励使用charAt(index)
和Character.gerNumericValue(ch)
===
基于它鼓励我做的事情,我想它希望我逐个字符地遍历字符串,将该字符转换为整数,并一次将其与整数中的一个数字进行比较。似乎我唯一可以做的转换是从char到int。所以我的问题是:
- 我应该用字符构建一个字符串,然后将整个字符串转换成整数吗?(我认为这是不允许的)
- 是否可以在整数中逐个索引,而不将其转换为字符串李>
我会展示我自己的代码,但我对这些数据类型如何工作有一个概念上的差距
# 1 楼答案
通常,公共函数调用带有额外参数的私有递归函数。 对于使用
get_int_at_index
的代码,需要传递额外的递归函数i
在您的情况下,这是不需要的,但是您需要使用
String
(使用charAt
检查一小部分)和int
。现在我怀疑String.valueOf(int)
不是故意的,而是通过模10(% 10
)检查数字的一小部分,一个数字取模10将首先给出最右边的数字,因此:
int num
int digit = num % 10; // Tiny part we deal with
num = num / 10; // Rest
String str
char ch = str.charAt(str.length() - 1); // Tiny part
str = str.substring(0, str.length() - 1); // Rest
所以