Android 想要将身份证号当做id赋给自定义的button,拿到的身份证号是string类型

我用Integer.valueOf(身份证号).intValue()系统就会报错,将身份证号减小到10位及10位一下
就不会报错,怎样解决这个问题?身份证号是从textView获取的值。

15个回答

身份证是18位的 而int的最大值 是明显不够用的 你可以使用long 去转换 还有就是身份证最后一位也有可能是X 要注意

u014015869
當秋天遇上秋天 应该用String类型!!!
2 年多之前 回复
u014015869
當秋天遇上秋天 应该用String类型
2 年多之前 回复
apsbb
apsbb 666
2 年多之前 回复
Jeff_YaoJie
Jeff_YaoJie 回复小白_qq: JAVA常用类之——BigInteger和BigDecimal 为何不使用对象对创建了,而且long为转换还会出现空的符号,在使用这两个对象时还可以创建或转换为String或相反String转时也方便
2 年多之前 回复
weixin_41125671
小白_qq 我将身份证号放在tag里面应该就可以。
2 年多之前 回复
weixin_41125671
小白_qq 主要是我想把身份证号绑定到按钮上面,通过点击按钮对此人进行查询或者是删除操作。主要是button的id必须是int类型的。Android的button有没有其他的属性可以获取啊?
2 年多之前 回复

你可以试试转为浮点型或者是double型

身份证号最后一位是有可能是X的,转成integer怕是会崩,,,,,而且在java中 integer范围在-2147483648 到2147483648

正如上面所说,身份证号码是不适合用整形或长整形的。应该用String类型。类似的还有电话号码。

运用正则表达式去判断身份证号是否正确!Android 身份证号码的验证

从textview gettext?怎么不直接写到button上,还是说你想获取身份证号然后set为button的text还是啥

u014015869
當秋天遇上秋天 应该用String类型的
2 年多之前 回复
weixin_41125671
小白_qq 我是从用户输入的信息拿取身份证号动态生成button,button的text只能输入用户的姓名,不能放身份证号给用户显示。
2 年多之前 回复

new Integer.valueof()返回的是Integer的对象。
Integer.parseInt() 返回的是一个int的值。
new Integer.valueof().intValue();返回的也是一个int的值。

parseInt
public static int parseInt(String s, int radix) throws NumberFormatException
以第二个参数所指定基数将字符串参数分析为一个带符号的整数。除了第一个字符可以用 ASCII 的减号 '-' 来表示一个负值外,字符串中的字符必须是指定基数的数(由 Character.digit 是否返回非负值决定)。返回作为结果的整数值。

参数:
s - 包含整数的 String 。
radix - 使用的进制
返回值:
指定基数的字符串参数所表示的整数。
抛出: NumberFormatException
若该串不包含一个可分析的整数。
parseInt
public static int parseInt(String s) throws NumberFormatException
将字符串参数作为带符号十进制整数来分析。除过第一个字符为 ASCII 字符中减号 '-' 表示的负数,字符串中的字符都必须是十进制数。

参数:
s - 串。
返回值:
十进制参数表示的整数。
抛出: NumberFormatException
若该串不包含一个可分析的整数。
valueOf
public static Integer valueOf(String s, int radix) throws NumberFormatException
返回初始化为指定 String 值的新的 Integer 对象。若该 String 不能作为 int 分析,则抛出异常。

参数:
s - 待分析的字符串。
返回值:
新创建的 Integer ,将其以指定基数初始化为字符串参数所表示的值。
抛出: NumberFormatException
若 String不包含可分析的整数。
valueOf
public static Integer valueOf(String s) throws NumberFormatException
返回初始化为指定 String 值的新的 Integer 对象。若该 String 不能作为 int 分析,则抛出异常。假设基数为 10 。

参数:
s - 待分析的字符串。
返回值:
新创建的 Integer ,将其初始化为字符串参数所表示的值。
抛出: NumberFormatException
如果该串不包含一个可分析的整数。

static int parseInt(String s)
将字符串参数作为有符号的十进制整数进行分析。
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保持指定的 String 的值的 Integer 对象。
从返回值可以看出他们的区别 parseInt()返回的是基本类型int
而valueOf()返回的是包装类Integer Integer是可以使用对象方法的 而int类型就不能和Object类型进行互相转换
int zhuan=Integer.parseInt(chuan);
int zhuanyi=Integer.valueOf(chuan); 为什么你的程序返回值都可以用int来接收呢? 因为Integer和int可以自动转换
Integer i = 5; int k = i;像是这样表示是没有编译错误的

身份证那么多数字,而且不一定都是数字,就别用Integer了,你直接用String就好了

类型改下就好了 int有字数限制 改成long就好了。

虽然身份证号在形式上是数字,但是它不参与四则运算,所以本质上还是字符串。
你从来不会求身份证号的平均值或者最大值,对吧。

共15条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问