热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

java正则表达式匹配所有数字的案例

这篇文章主要介绍了java正则表达式匹配所有数字的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])

(

[1-9] :匹配1~9的数字;

\d :匹配数字,包括0~9;

* :紧跟在 \d 之后,表明可以匹配零个及多个数字;

\. :匹配小数点;

? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;

0 :匹配一个数字0;

)

其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、56.78 之类的非负的整数和浮点数;

其中的 0\.\d*[1-9] 用以匹配诸如:0.1、0.23、0.405 之类的非负浮点数;

 private List 
 GetTmpFieldsList(List 
 FieldsList,String tmptableName,String IndexName) { 
 
 List 
 maps = new ArrayList<>();
 for(String field :FieldsList){
  //必须包含传入的标识符,同时要包含数字
  if(field.toLowerCase().contains(tmptableName.toLowerCase())){
  FieldList e = new FieldList();
  String [] fieldArray = field.split("\\.");//带数字的string
  field = field.replaceAll("\\_&#63;\\d+", ""); //去掉下划线加数字 得有效的物理名
  String [] fieldArray2 = field.split("\\."); //不带数字的string
  Pattern p = Pattern.compile("\\d+"); //得到字符串中的数字
  Matcher m = p.matcher(fieldArray[1]);
  if(m.find()){
   int key = Integer.parseInt(m.group());
   e.setCaseValue(key);
   if(StringUtils.isEqual(fieldArray2[1], IndexName)){ //for BAT203
   e.setField("CHECK_POSITION"); //項目物理名
   }else{
   e.setField(fieldArray2[1]); //項目物理名
   }
   e.setFieldName(fieldArray[1]); //項目物理名別名
   maps.add(e);
  }
  /**else{ 只有后面带数字的才可以
   if(StringUtils.isEqual(fieldArray2[1],IndexName)){ //for BAT203
   e.setField("CHECK_POSITION"); //項目物理名
   }else{
   e.setField(fieldArray2[1]);
   }
   e.setFieldName(fieldArray[1]);
   maps.add(e);
  }**/
  }
 }
 //Add ACE商品マスタ.更新フラグ 
 return maps;
 }

补充知识:关于fasterxml-jackson发生Can not deserialize instance of异常原因验证

这两天线上有大量的

java.lang.IllegalArgumentException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

at [Source: N/A; line: -1, column: -1]错误发生。

有经验的人一看,就知道是对象属性转换发生异常了。为了把这个错误的根本原因找到。

只能上代码模拟了。

/**
 * Created by changle on 17/1/9.
 */
@Slf4j
public class JSONTest {
 public static void main(String[] args) {
 testAtoB();
 //testAtoB() 发生:Can not deserialize instance of com.test.JSONTest$Hobby out of START_ARRAY token
 
 testBtoA();
 //testBtoA() 发生:Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
 }
 
 public static void testAtoB(){
 List hobbies = new ArrayList<>();
 Random random = new Random();
 for(int i=0;i<3;i++){
  Hobby hobby = new Hobby(random.nextInt(),"测试名称","测试类型",random.nextInt(100));
  hobbies.add(hobby);
 }
 StudentA studentA = new StudentA();
 studentA.setAge(23);
 studentA.setFromCity(true);
 studentA.setMoney(3000);
 studentA.setName("张三");
 studentA.setHobbies(hobbies);
 try {
  String str = JSON.json(studentA);
  log.info("str={}",str);
  //list转换单个projo
  StudentB studentB = JsonUtil.jsonObject(str, StudentB.class);
  log.info("studentB.name:{}",studentB.getName());
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
 
 public static void testBtoA(){
 Random random = new Random();
 Hobby hobby = new Hobby(random.nextInt(), "测试名称", "测试类型", random.nextInt(100));
 StudentB studentB2 = new StudentB();
 studentB2.setAge(23);
 studentB2.setFromCity(true);
 studentB2.setMoney(3000);
 studentB2.setName("张三");
 studentB2.setHobbies(hobby);
 String str2 = null;
 try {
  str2 = JSON.json(studentB2);
  //单个projo转换list
  StudentA studentA2 = JsonUtil.jsonObject(str2, StudentA.class);
  log.info("studentB.name:{}", studentA2 == null &#63; "" : studentA2.getName());
 } catch (IOException e) {
  e.printStackTrace();
 }
 }
 
 @Data
 public static class StudentA{
 private String name;
 private int age;
 private long money;
 private boolean isFromCity;
 private List hobbies;
 }
 
 @Data
 public static class StudentB{
 private String name;
 private int age;
 private long money;
 private boolean isFromCity;
 private Hobby hobbies;
 }
 
 @Data
 public static class Hobby{
 private long hId;
 private String hName;
 private String type;
 private int score;
 
 public Hobby(){}
 
 public Hobby(long hId,String hName,String type,int score){
  this.hId = hId;
  this.hName = hName;
  this.type = type;
  this.score = score;
 }
 }
}

结论:

Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

该错误是因为目标类属性keyX需要ArrayList类型的,待转换的json串里属性名keyX对应的,不是一个ArrayList集合,而是单个 POJO。

Can not deserialize instance of com.test.JSONTest$Hobby out of START_ARRAY token

该错误是因为目标类属性keyX需要JSONTest$Hobby类型的,待转换的json串里属性名keyX对应的,不是一个POJO对象,而是ArrayList集合。

以上这篇java正则表达式匹配所有数字的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • jmeter实践:从csv中获取带引号的数据详情的技巧和运行全部数据的方法
    本文分享了jmeter实践中从csv中获取带引号的数据的解决办法,包括设置CSV Data Set Config和运行脚本获取数据的方法。另外还介绍了循环运行csv中全部数据的解决方法,避免每次修改csv用例都需要修改脚本的麻烦。通过了解和掌握工具的细节点,可以更好地解决问题和提高技术水平。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
author-avatar
鹰击长空1943
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有