【问题标题】:Long values are concatenating instead of adding长值是连接而不是相加
【发布时间】:2018-06-23 02:26:37
【问题描述】:

我有这个方法:

public NumPal next(){
   stringRev = reverseString(stringCur);
  numRev = Long.parseLong(stringRev);
  numCur = Long.parseLong(stringCur);
   numCur = (numCur + numRev);
   stringCur = Long.toString(numCur);
   NumPal n = new NumPal(stringCur);
   return n;
   }

当我尝试添加 numCur 和 numRev 时,出于某种原因将它们连接起来。他们是字符串吗?我相信我正确使用了 Long.ParseLong 但我不确定。

【问题讨论】:

  • 试试(numCur+numRev)。如果你正在做类似System.out.println("result:" + (numCur+numRev));的事情,你应该使用括号
  • return new NumPal(Long.parseLong(new StringBuilder(stringCur).reverse().toString()) + Long.parseLong(stringCur));
  • 我很确定这种方法不是您的问题所在。这种方法没有打印代码,那么你怎么知道它是连接的?无论代码试图打印出返回的NumPal,它都可能有些奇怪。你能分享一段打印结果的代码吗?
  • 欢迎来到 Stack Overflow。如果您create a Minimal, Complete, and Verifiable example 包括您处理的数字的一两个示例、期望/预期结果(总和)和观察到的结果(串联),您的问题会更好。正如你所看到的,以我们迄今为止所拥有的,我们都在盲目地挣扎和猜测。请帮助我们帮助您。

标签: java string concatenation long-integer


【解决方案1】:

检查加法是否溢出长尺寸。长尺寸范围是 2^63 到 2^63–1。如果您想添加无法长时间容纳的大数字,请尝试此链接中的方法。 https://www.geeksforgeeks.org/sum-two-large-numbers/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多