Java中String转int类型出现的问题及解决⽅式
⼀般在Java中String转为Int主要有两种⽅法:
1. Integer.parseInt(str);
2. Integer.valueOf(str);
ps:两者的不同之处:
Integer.parseInt(s)返回值为Int型
Integer.valueOf(s)返回值为Integer,区别在于后者能够使⽤Integer的⼀些⽅法。
转换出现问题时,⼀般是报NumberFormatException:
1) 输⼊为空时
2) 输⼊为字母时,如abcd等,不为数字的情况时
3) 输⼊超出int上限时
针对情况1)可以做判断是否为空;
针对情况2)可以做正则表达式校验;
针对情况3)可以⽤try-catch;
可以通过try-catch作出相应的友好提⽰:
try{
if(StringUtils.isEmpty(str)){
System.out.println("不能为空");
}
attern pattern = Patternpile("[0-9]*");
bigdecimal转换为integerMatcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
System.out.println("必须为数字");
}
Integer i = Integer.valueOf(str);
}catch(NumberFormatException e){
System.out.println("超过上限");
}
对于情况3),可能有⼀种情况必须要转为int类型,⽐如时间转为时间戳,由13位的时间戳字符串转为int类型,可能有超过上限的情况,处理⽅法可以通过String转为Long,处理之后,再转为int。
String timeStr = "1527498005000";
Long timeLong = Long.parseLong(timeStr )/1000;
Integer timeInt = timeLong.intValue();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。