试图反向 return 整数(没有递归)
trying to return integer in reverse (without recursion)
我正在尝试打印给定整数的反转。该函数必须接受一个整数和 return 一个整数(w/o 递归或将每个数字单独打印为字符串)。这是我得到的,但它不起作用:
class Solution {
public int reverse(int x)
{
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}
}
我的 return 语句出现运行时错误。非常感谢任何帮助或建议!
class Solution {
public static int reverse(int x)
{
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}
public static void main(String[] args) {
int answer = reverse(12345);
System.out.print(answer);
}
}
我刚刚将你的方法设为静态,你的代码对我来说工作正常,输出如下:
54321
进程已完成,退出代码为 0
这里不需要String
,只需累加每个数字并将当前值乘以10(右移)。此外,您的方法可以是 static
。喜欢,
public static int reverse(int x) {
int r = 0;
while (x > 0) {
r = (r * 10) + (x % 10);
x /= 10;
}
return r;
}
您收到值 0 的错误。Java 无法将字符串“”解析为 int。将字符串值初始化为“0”。
另一方面,您可以简化方法:
class Solution {
public int reverse(int x)
{
String digitsChain = Integer.toString(x);
return Integer.valueOf(StringUtils.reverse(digitsChain));
}
}
你错过了 x 为 0 的情况。如果 x 为 0,则字符串将为空。当你调用 return Integer.parseInt(numStr) 时,其中 numStr 为空字符串,将导致错误。
所以,如果你添加一个 if 语句来检查边缘情况,应该没问题
public static int reverse(int x)
{
if(x == 0) return 0;
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}
我正在尝试打印给定整数的反转。该函数必须接受一个整数和 return 一个整数(w/o 递归或将每个数字单独打印为字符串)。这是我得到的,但它不起作用:
class Solution {
public int reverse(int x)
{
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}
}
我的 return 语句出现运行时错误。非常感谢任何帮助或建议!
class Solution {
public static int reverse(int x)
{
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}
public static void main(String[] args) {
int answer = reverse(12345);
System.out.print(answer);
}
}
我刚刚将你的方法设为静态,你的代码对我来说工作正常,输出如下:
54321 进程已完成,退出代码为 0
这里不需要String
,只需累加每个数字并将当前值乘以10(右移)。此外,您的方法可以是 static
。喜欢,
public static int reverse(int x) {
int r = 0;
while (x > 0) {
r = (r * 10) + (x % 10);
x /= 10;
}
return r;
}
您收到值 0 的错误。Java 无法将字符串“”解析为 int。将字符串值初始化为“0”。
另一方面,您可以简化方法:
class Solution {
public int reverse(int x)
{
String digitsChain = Integer.toString(x);
return Integer.valueOf(StringUtils.reverse(digitsChain));
}
}
你错过了 x 为 0 的情况。如果 x 为 0,则字符串将为空。当你调用 return Integer.parseInt(numStr) 时,其中 numStr 为空字符串,将导致错误。
所以,如果你添加一个 if 语句来检查边缘情况,应该没问题
public static int reverse(int x)
{
if(x == 0) return 0;
String numStr = "";
while (x > 0)
{
numStr = numStr + Integer.toString(x % 10);
x /= 10;
}
return Integer.parseInt(numStr);
}