1、问题形容
-
明天在工作中遇到一个问题,批量导入的时候,手机号码在 excel 里是这样的
-
咱们都晓得,在 excel 里如果这样的上图那样就是数字的模式,只有在下图这样才是字符串
-
如果是图一的状况在 excel 导入 java 后盾的时候会变成迷信计数法的模式。如果你的后盾服务 用的是 String 类型接管的话,就会呈现接管的字符串如下图所示
2、解决方案
2.1、思路
-
拿到 excel 上传为字符串 -> 正则去匹配校验字符串是否为迷信计数法 -> 是,则将迷信计数法字符串转化成数字的字符串 -> 赋值给原有的变量
2.2、撸代码
- 匹配正则
- 判断
-
转化
public static void main(String[] args) { // 要验证的字符串 String str = "1.5949155484E10"; // 邮箱验证规定 String regEx="^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$"; // 编译正则表达式 Pattern pattern = Pattern.compile(regEx); // 疏忽大小写的写法 // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(str); // 字符串是否与正则表达式相匹配 boolean rs = matcher.matches(); // 判断是否为字符串的迷信计数法 if(rs){ // 迷信计数法转数字 BigDecimal one = new BigDecimal(str); // 数字转字符串 System.out.println("手机号为 ==>" + one.toPlainString()); } }
-
输出: