我已将"phone"
设置为数据库中的10位数的int
,并将输入作为我使用
String phone1=request.getParameter("phone");
int phone =Integer.parseInt(phone1);
但是为什么不起作用?
答案 0 :(得分:4)
在Java中,您可以存储int
变量编号,范围为-2147483648至2147483647.这对于您的10位数电话号码是不够的。您可以使用long
轻松解决此问题:
long phone = Long.parseLong(phone1);
另一方面,我会重新考虑使用数字数据类型来存储电话号码。为什么呢?
#
或p
等有效且有时用于电话号码的内容答案 1 :(得分:0)
如果您的手机格式类似(+ 3212-45-356)或其他。在解析它之前,你必须从那个'特殊字符'中清除该字符串。尝试解析它很长。
String phone1=request.getParameter("phone");
Long phone =Integer.parseLong(phone1.replace("\\+","").replace.("-",""));
答案 2 :(得分:-1)
一个问题是,前面的0将使数字八进制为8;然后数字8和9导致NumberFormatException。 Base 8允许表示3位0-1,其中一位数为0-7。
long phone = Long.parseLong(phone1, 10);
这迫使基地10。
当然,由于人们没有使用电话号码计算,并且通过此转换会丢失前面的零,这可能不太适合。在许多国家/地区,使用前面的+
或00
输入国际号码。