【问题标题】:java.lang.NumberFormatException: For input string: “” [closed]java.lang.NumberFormatException:对于输入字符串:“” [关闭]
【发布时间】:2021-09-16 18:18:15
【问题描述】:

问题是重复的,但我找不到合适的解决方案,所以请帮我解决这个问题,

我必须将信用卡号(从edittext)转换为int。 信用卡号码如:“3333 3333 3333 3333” 我使用String removeWhiteSpace = cardNumEt.getText().toString().replace(" ", ""); 删除了空格 比转换成 int 像:

  try
            {
                int nIntFromET = Integer.parseInt(removeWhiteSpace);
            }
            catch (NumberFormatException e)
            {
               Log.e("exptn",e.toString());
            }

但不幸的是它给了我例外:

java.lang.NumberFormatException: For input string: "3333333333333333"

【问题讨论】:

  • 您的号码太大,无法解析为int,请使用long
  • 我无法向服务器发送长值。 @jAC
  • 那么你需要做一些事情来改变你不能在你的服务器上使用long 的事实。信用卡号根本不适合int。也许您可以使用String
  • 你的服务员好像搞砸了。信用卡号应该是一个字符串,而不是一个整数。如果要对其执行一些数学运算,我们通常取整数值。只需将类型更改为 String 。

标签: java android exception numbers


【解决方案1】:

Java 中的 int 类型可用于表示从 -2147483648 到 2147483647 的任意整数。

您的值高于最大正整数。 但你可以改用 long 和 BigInteger

class Scratch {
    public static void main(String[] args) {
        try
        {
            int nIntFromET = Integer.parseInt("2147483647");
        }
        catch (NumberFormatException e)
        {
            System.out.println(e);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2013-08-06
    相关资源
    最近更新 更多