我有一个如下所示的字符串
String detail = "UserDetail: Name=TestName1, Address=India, Name=TestName2, Address=USA";
我想只获取名单。即在上面的示例中,我想删除字符串UserDetail
和Address
详细信息,Name
获取仅包含TestName1
和TestName2
的列表。
截至目前,我正在将字符串转换为list
并执行子字符串/从列表中删除值。
我想知道还有其他有效的方法吗?
答案 0 :(得分:3)
试试这个。
String detail = "UserDetail: Name=TestName1, Address=India, Name=TestName2, Address=USA";
List<String> result = new ArrayList<>();
Pattern pat = Pattern.compile("Name=(\\w+)");
Matcher matcher = pat.matcher(detail);
while (matcher.find())
result.add(matcher.group(1));
System.out.println(result);
结果:
[TestName1, TestName2]
答案 1 :(得分:0)
应该可以使用String.split(分隔符)来完成它。 for first call use:as delimiter和ntake返回数组的第二个元素“Name = TestName1,Address = India,Name = TestName2,Address = USA” 然后拆分,(逗号) 然后循环遍历该数组并将每个元素拆分为=并获取返回数组的第二个元素,这就是您要查找的内容
答案 2 :(得分:0)
尝试模式:
String pattern = "Name=(\\w+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(detail);
List<String> result = new ArrayList<>();
while (m.find()) {
result.add(m.group(1));
}