所以我被困在这个问题上,你有办法吗 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条答案
按热度按时间qmelpv7a1#
通常,公共函数调用带有额外参数的私有递归函数。为您的代码使用
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; // RestString str
char ch = str.charAt(str.length() - 1); // Tiny partstr = str.substring(0, str.length() - 1); // Rest
所以