java - 为什么我的解决方案对于反转整数是错误的?

标签 java string algorithm debugging integer

我需要反转一个整数,在这种情况下,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)) 
}

这是我的错误:

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)

最佳答案

不要在开头添加空格:

String result = " ";

使用空字符串

String result = "";

而且,与问题无关,你也可以通过这个来实现:

int x = 123;
StringBuilder stringBuilder = new StringBuilder(x);
int y = Integer.parseInt(stringBuilder.reverse().toString());

关于java - 为什么我的解决方案对于反转整数是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52190015/

相关文章:

Java OpenCL : Passing scalar parameter to kernel in JOCL

java - Android 希伯来语 EditText

java - 通常在哪里保存来自 Java 应用程序的外部数据?

java - 在 AWS 上使用 Kubernetes 创建并运行 docker 容器集群

swift - 迭代字符串的 UTF8View 时显示的不同类型

python - 检查给定的输入词是否为回文

algorithm - 有没有办法把两个角压缩成2个字节?

java - Thread.sleep 在循环中调用 - 在这种情况下如何防止它(通过重构)?

java - 如何忽略单元测试中的某些字段,Hibernate

Char 数组在应该为空时不为空