如何在ArrayList <string>中的每个元素上附加分号

时间:2016-12-09 11:15:51

标签: java list selenium arraylist selenium-webdriver

我目前正在尝试在ArrayList中的每个元素的末尾附加一个分号。

代码:

ArrayList<String> emailAddresses = new ArrayList<String>();

public void getEmailAddresses() throws InterruptedException {
    driver.findElement(By.className("userlink-0")).click();
    String emailAddress = driver.findElement(By.id("email")).getText();
    emailAddresses.add(emailAddress);
    hs.addAll(emailAddresses);
    emailAddresses.clear();
    emailAddresses.addAll(hs);

}

最终,我将获取此电子邮件地址列表并将其输出到收件人字段,以便使用Java发送电子邮件。因此,为什么我尝试将分号附加到元素以分隔电子邮件地址。

由于

4 个答案:

答案 0 :(得分:5)

假设你使用 Java 8 ,你可以使用Stream APIjoining(CharSequence delimiter)作为收集器,允许连接输入元素,由指定的分隔符,按顺序作为下一个:

String emails = emailAddresses.stream().collect(Collectors.joining(";"));

答案 1 :(得分:0)

作为一种原始解决方案,您可以使用:

for (int i = 0; i < emailAddresses.size(); i++) {
    emailAddresses.set(i, emailAddresses.get(i).concat(";"));
}

答案 2 :(得分:0)

删除使用分号的逗号对我来说并不是一个完整的证明解决方案,将来不会破坏。因为这需要在列表上执行syso,然后使用正则表达式替换逗号和括号。相反,我将使用StringBuilder,迭代列表并附加分号。

StringBuilder str = new StringBuilder();
for(int i=0; i< emailAddresses.size(); i++ )
{
    str.append(emailAddresses.get(i));
    //to skip last emailAddress 
    if(i+1 == emailAddresses.size())
        continue;
    str.append(";");
}
System.out.println(str.toString());

答案 3 :(得分:0)

您可以在将每个元素添加到ArrayList时添加分号。但是假设您想稍后进行一些处理,那么现在您必须处理已添加的额外分号。

所以一个更好的解决方案可能是,只需按原样添加所有元素,然后在收件人字段下面的行下方打印:

System.out.println(emailAddresses .toString().replace("[", "").replace("]", "").replace(",", ";"));

如果有任何问题在评论部分提出。