Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除存储在ArrayList中的特定字符串_Java_Arrays_String - Fatal编程技术网

Java 如何删除存储在ArrayList中的特定字符串

Java 如何删除存储在ArrayList中的特定字符串,java,arrays,string,Java,Arrays,String,我有一个代码来存储这些值以供以后使用。但我需要找到确切的名字,而不是全部。我得到如下输出: 输出结果显示:[Ranjit Nayak(律师)、ranjti Nyak(案件经理)、shenoy律师(平行法律)] 所以我需要使用一些方法来删除包括括号在内的内容。请帮忙 在代码中:CaseManagersreceivingreminders是一个全局ArrayList,我有一个类似的另一个ArrayList存储值。成功编辑字符串后,我需要比较两个数组值 已尝试修剪,更换。什么都不管用 List

我有一个代码来存储这些值以供以后使用。但我需要找到确切的名字,而不是全部。我得到如下输出:

输出结果显示:
[Ranjit Nayak(律师)、ranjti Nyak(案件经理)、shenoy律师(平行法律)]

所以我需要使用一些方法来删除包括括号在内的内容。请帮忙

在代码中:
CaseManagersreceivingreminders
是一个全局
ArrayList
,我有一个类似的另一个
ArrayList
存储值。成功编辑字符串后,我需要比较两个数组值

已尝试
修剪
更换
。什么都不管用

    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();
    }
List PMPageCMList=
findElements(By.xpath(“//div[@id='collapseCM']/div[2]/div[2]/div”);
int totalcms=PMPageCMList.size();

for(int i=1;i您的
集合
案例管理器ReceivingReminders
是一个字符串列表,因此只需对列表进行迭代,对于在
'('
上拆分的每个字符串,将新字符串保存在一个新列表中

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);
List newList=newarraylist();
用于(字符串s:CaseManagersReceivingMemorients){
s=s.replaceAll(“\\(.\\)”,”);
新列表。添加(s);
}
System.out.println(newList);
输出:

[Ranjit Nayak,ranjti Nyak,shenoy律师]

关于
\\(.\\)
regex:

  • \\(
    \\)
    :对于任何特殊字符,如
    您 应该在它们之前使用
    \\
    来匹配
  • *
    :匹配任何字符零次或多次
因此,
\\(.\\)
表达式可以匹配字符串的一部分,如
(律师)

使用的方法,使用合适的:

您可以使用以下正则表达式从每个字符串中删除
(…)
部分:
\s*\(.*)

如果要更新现有列表,可以使用
list.replaceAll()

或者,如果要创建一个包含以下结果的新列表,可以使用Java Streams:

Pattern pattern = Pattern.compile("\\s*\\(.*\\)");
List<String> result = list.stream()
        .map(s -> pattern.matcher(s).replaceAll(""))
        .collect(Collectors.toList());
Pattern=Pattern.compile(“\\s*\\(.\\)”;
列表结果=List.stream()
.map->pattern.matcher.replaceAll(“”)
.collect(Collectors.toList());

然后您必须遍历数组中的每个元素,并用修改过的元素替换该元素。现在问题出在哪里?或者只是基于新元素创建一个新数组,这对小问题来说无关紧要arrays@AKSW示例代码!如何才能
split()
trim()
与Selenium相关?我遗漏了什么吗?你应该坚持Java命名约定:变量名总是用camelCase编写的。但这只会删除第一个(,括号内的内容如何?@ranjitnayak“Ranjit Nayak(律师)”。拆分(“”)会将字符串拆分为两个字符串“Ranjit Nayak”和“律师”)。请在此处阅读有关split()方法的更多信息-
Pattern pattern = Pattern.compile("\\s*\\(.*\\)");
list.replaceAll(s -> pattern.matcher(s).replaceAll(""));
Pattern pattern = Pattern.compile("\\s*\\(.*\\)");
List<String> result = list.stream()
        .map(s -> pattern.matcher(s).replaceAll(""))
        .collect(Collectors.toList());