一、问题描述今天在工作中遇到了一个问题。批量导入时,手机号在excel中是这样的。我们都知道,在excel中,如果像上图,就是数字形式的,只有下图。如果字符串是图1的情况,那么在java后台导入excel的时候就是科学计数形式。如果你的后台服务使用String类型接收,接收到的字符串会如下图所示。2.解决方案2.1。思路是获取excel并以字符串形式上传->正则模式匹配并检查字符串是否为科学计数法->是,然后将科学计数法字符串转换为数字字符串->赋值给原变量2.2,代码匹配正则判断转换publicstaticvoidmain(String[]args){//验证Stringstr="1.5949155484E10";//邮箱验证规则StringregEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$";//编译正则表达式Patternpattern=Pattern.compile(regEx);//忽略大小写书写//Patternpat=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);匹配器matcher=pattern.matcher(str);//字符串是否匹配正则表达式booleanrs=matcher.matches();//判断是否为字符串的科学记数法if(rs){//数字的科学记数法BigDecimalone=newBigDecimal(str);//数字到字符串System.out.println("Thephonenumberis==>"+one.toPlainString());}}输入:
