我需要反转一个整数,在这种情况下,123
应该出现在321
中。我正在将int转换为字符串,将字符串反转,将其转换回int,然后返回它,但我还是得到了error
。
什么是解决此问题的好方法?
这是我的代码:
public static int solution(int x) {
String s = Integer.toString(x);
String result = " ";
int ans = 0;
for(int i = s.length() - 1; i >= 0; i--) {
result += s.charAt(i);
}
ans = Integer.parseInt(result);
return ans;
}
public static void main(String args[]) {
int x = 123;
System.out.print(solution(x))
}
这是我的error
:
Exception in thread "main" java.lang.NumberFormatException: For input string: " 321"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at Node.solution(Node.java:28)
at Node.main(Node.java:47)
答案 0 :(得分:4)
请勿在开头添加空格:
String result = " ";
使用空字符串
String result = "";
而且,与该问题无关,您也可以通过以下方式实现它:
int x = 123;
StringBuilder stringBuilder = new StringBuilder(x);
int y = Integer.parseInt(stringBuilder.reverse().toString());
答案 1 :(得分:0)
无需重复转换为字符串,反之亦然。
Python代码(注意前导零消除):
def rev(x):
res = 0
while (x > 0):
res = res * 10 + x % 10
x = x // 10
return res
print(rev(9801), rev(120))
>>> 1089 21