gpt4 book ai didi

java - 遇到将字符串转换为 Int 的递归问题

转载 作者:行者123 更新时间:2023-11-30 10:09:50 25 4
gpt4 key购买 nike

所以问题如下。您要创建一个方法,该方法将字符串作为由所有数字组成的参数,并且您需要获取该字符串并将其转换为整数。您必须使用递归解决方案来解决问题。

我编写了以下代码,当我输入“1234”或“138775”时它工作正常,但一旦我输入包含 0 的数字,它就会返回一个奇怪的结果。

100、1001、101 和 12045 分别返回 10、11、110 和 1245。如上所述,当我向它发送“1234”或“14384”之类的东西时,代码工作得很好,但一旦有一个零,它就会倾向于删除那个零。

我尝试了从 Integer 类(例如 parse(int))到 string 的不同 int 转换,但结果相同。

/**
* converts a string of numbers to an int
*
* @param String str: original string of numbers
* @return int recursiveStringInt: returns the int value of the string
*/
public static int recursiveStringInt(String str)
{
if(str.length() == 1)
return Integer.valueOf(str);
else
{
return Integer.valueOf(str.substring(0,1) + recursiveStringInt(str.substring(1)));
}
}

感谢你们的帮助!

如果需要任何说明,请告诉我。

最佳答案

您的括号对于您要尝试做的事情来说有点偏离,逻辑需要一些工作..您想要的是获取当前字符串的 last 字符,将其转换为一个整数,并将其添加到字符串前面的转换乘以 10。

int recursiveStringInt(String str) {
int length = str.length()
if(length == 1)
return Integer.valueOf(str);
else
{
int temp = Integer.valueOf(str.substring(length-1)) + ( 10 * recursiveStringInt(str.substring(0,length-1)));
return temp;
}
}

“8”的简单情况导致仅执行第一个 block 。

“83”的下一个例子导致 temp = 3 + (10 * 8) = 83

“103”的下一个例子导致 temp = 3 + (10 * (0 + (10 * 1))) = 103

关于java - 遇到将字符串转换为 Int 的递归问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055927/

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