gpt4 book ai didi

java - endIndex 小于此 String 对象子字符串的长度

转载 作者:行者123 更新时间:2023-11-30 02:13:09 24 4
gpt4 key购买 nike

我有一个如下所示的字符串

String s = "John21071989Bangalore";

Class Person {
String name;
Long dob;
String city;
....
}

我有一个 Bean,拆分字符串并将值设置为 Bean。

Person p = new Person();
p.setName(s.subString(0,4)); //John
p.setDob(Long.ParseLong(s.subString(4,12))); //2071989
p.setCity(s.subString(12,21));//Bangalore

现在我的问题是,如果子字符串 endIndesx 小于长度,则会出现错误。我想将 dob 值获取为空插入错误。

String s1 = "John2107    Bangalore";

Person p = new Person();
p.setName(s.subString(0,4)); //John
p.setDob(Long.ParseLong(s.subString(4,12))); //this should be null
p.setCity(s.subString(12,21));//Bangalore

最佳答案

String s = "John21071989Bangalore";

Pattern pattern = Pattern.compile("(?<name>[a-zA-Z]+)(?<dob>\\d*)\\s*(?<city>[a-zA-Z]+)");
Matcher m = pattern.matcher(s);
Person p = new Person();
if (m.find()) {
p.setName(m.group("name"));
String dob = m.group("dob");
if (dob != null && !dob.trim().isEmpty())
p.setDob(Long.valueOf(dob.trim()));
p.setCity(m.group("city"));
}

关于java - endIndex 小于此 String 对象子字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com