java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字在java中怎么利用正则表达式匹配数字发布时间:2020-12-0317:47:12来源:亿速云阅读:58作者:Leah在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用于匹配的正则表达式为:([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9]:匹配1~9的数字;\d…

大家好,又见面了,我是你们的朋友全栈君。

在java中怎么利用正则表达式匹配数字

发布时间:2020-12-03 17:47:12

来源:亿速云

阅读:58

作者:Leah

在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(“\\_?\\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 ? “” : 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;

}

}

}

486.jpg

487.jpg

结论: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中怎么利用正则表达式匹配数字问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker端口映射成功 不可用_docker启动后访问拒绝连接

    docker端口映射成功 不可用_docker启动后访问拒绝连接情境描述创建一个docker容器,并进行端口映射。容器启动后,在部署容器的主机上可以访问映射端口,但是其他主机无法访问。问题排查出现上述情况,应是请求被拦截。出现该问题的可能是由于firewall配置异常、ip转发关闭、iptables服务拦截了请求排查firewall(1)使用firewall-cmd–state查看防火墙运行情况如果防火墙处于notrunning,则可以排除…

    2022年10月17日
    0
  • Python3列表_python tuple

    Python3列表_python tuple列表列表特点:是一种序列结构,与元组不同,列表具有可变性,可以追加、插入、删除、替换列表中的元素新增元素appendappend添加一个对象,可以是任意类型a=['zhangsa

    2022年7月31日
    3
  • 羊车门作业

    羊车门作业

    2021年5月27日
    89
  • 用Python教训盗号骗子

    用Python教训盗号骗子文章目录前言抓包分析代码编写测试效果后记前言近日,本人闲来无事在QQ空间浏览好友动态,突然一张熟悉的图片进入了我的视野,没错,就是它,又是那一张图片。在好奇心的驱使下,我扫了上图中码子,打开一个网站,凭借老夫多年的经验,这网站一定是钓鱼网站。本想就这么算了,可是实在是太无聊了,想要搞一下这个盗号骗子,于是乎就有了这篇文章。抓包分析代码编写思路:利用random随机产生QQ号…

    2022年6月29日
    33
  • WIFI 常识

    WIFI 常识DSSS(DirectSequenceSpreadSpectrum)直接序列扩频FHSS,跳频技术(Frequency-HoppingSpreadSpectrum)FHSS和DSSS比较跳频扩频(FHSS):跳频扩频(FHSS)技术是通过“伪随机码”的调制,信息的载波受一伪随机序列的控制,使载波工作的中心频率不断跳跃改变,而噪音和干扰信号的中心频率却不会改变,这样,只要收、发信机之间按照固定的数字算法产生相同的“伪随机码”,就可以达到同步,排除了噪音和其它干扰信号。虽然在..

    2022年7月20日
    10
  • VI退出 退出VIM 适用新手

    VI退出 退出VIM 适用新手今天看了篇文章,说10万人中就有1个人不知道怎么退出VIM,我第一次用的时候也不知道怎么退出。一、退出方法如下::q–退出(这是:quit的缩写):q!–不保存退出(这是:quit!的缩写):wq–写入文件并退出(这是:writequit的缩写):wq!–(如果文件只有读权限)写入并退出;(如果文件没有写权限,强制写):x–类似于:wq

    2022年6月10日
    84

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号