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