解决导入excel手机号以科学计数法上传问题!!!

1、问题描述

  • 今天在工作中遇到一个问题,批量导入的时候,手机号码在excel里是这样的

    • 解决导入excel手机号以科学计数法上传问题!!!_第1张图片
  • 我们都知道,在excel里如果这样的上图那样就是数字的形式,只有在下图这样才是字符串

    • 解决导入excel手机号以科学计数法上传问题!!!_第2张图片
  • 如果是图一的情况在excel导入java后台的时候会变成科学计数法的形式。如果你的后台服务 用的是String类型接收的话,就会出现接收的字符串如下图所示

    • image.png

    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());
          }
      }
    
  • 输入:

    • image.png

你可能感兴趣的:(解决导入excel手机号以科学计数法上传问题!!!)