[英]How to remove specific String stored in an ArrayList
我有一个存储值以供以后使用的代码。 但是我需要找到确切的名称而不是整个名称。 我得到如下输出:
输出结果显示: [ Ranjit Nayak ( Attorney ), ranjti Nyak ( Case Manager ), shenoy attorney ( Parallegal ) ]
因此,我需要使用某种方法来删除包括方括号在内的内容。 请帮忙。
在代码中: CaseManagersreceivingreminders
是一个全局ArrayList
,我有一个类似的另一个ArrayList
存储值。 字符串编辑成功后,我需要比较两个数组值。
尝试trim
, replace
。 什么都没有。
List<WebElement> PMPageCMList =
driver.findElements(By.xpath("//div[@id='collapseCM']/div[2]/div[2]/div"));
int totalcms = PMPageCMList.size();
for (int i = 1; i <= totalcms; i++) {
CaseManagersreceivingreminders.add(
driver
.findElement(By.xpath("//div[@id='collapseCM']/div[2]/div[2]/div" + "[" + i + "]" + "/span"))
.getText()
);
}
Collections.sort(CaseManagersreceivingreminders);
Collections.sort(ReminderCMsList);
try {
boolean isEqual = CaseManagersreceivingreminders.contains(ReminderCMsList);
System.out.println(isEqual);
Log.pass("Data matching" + isEqual);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我应该得到如下输出: [ Ranjit Nayak, ranjti Nyak, shenoy attorney ]
您的Collection
CaseManagersreceivingreminders
是一个字符串列表,因此只需遍历该列表,对于拆分为'('
每个字符串并将新字符串保存在新列表中。
for (String names : CaseManagersreceivingreminders) {
CaseManagersreceivingreminders_New.add(names.split("(")[0]);
}
您可以使用正则表达式删除字符串的(...)
部分:
List<String> newList = new ArrayList<>();
for(String s: CaseManagersreceivingreminders) {
s = s.replaceAll("\\(.*\\)", "");
newList.add(s);
}
System.out.println(newList);
输出:
[Ranjit Nayak, ranjti Nyak, shenoy attorney]
关于\\\\(.*\\\\)
正则表达式:
\\\\(
和\\\\)
:对于任何特殊字符(
如(
或)
,应在匹配之前使用\\\\
。 .*
:匹配任何字符零次或多次。 因此\\\\(.*\\\\)
表达式可以匹配诸如( Attorney )
之类的字符串的一部分
使用List
的replaceAll()
方法和合适的UnaryOperator
:
list.replaceAll(s -> s.replaceAll(" *[(].+?[)]", ""));
您可以使用以下正则表达式从每个字符串中删除(...)
部分: \\s*\\(.*\\)
如果要更新现有列表,可以使用List.replaceAll()
:
Pattern pattern = Pattern.compile("\\s*\\(.*\\)");
list.replaceAll(s -> pattern.matcher(s).replaceAll(""));
另外,如果要使用结果创建新列表,则可以使用Java Streams:
Pattern pattern = Pattern.compile("\\s*\\(.*\\)");
List<String> result = list.stream()
.map(s -> pattern.matcher(s).replaceAll(""))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.