我目前正在尝试在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发送电子邮件。因此,为什么我尝试将分号附加到元素以分隔电子邮件地址。
由于
答案 0 :(得分:5)
假设你使用 Java 8 ,你可以使用Stream API
和joining(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(",", ";"));
如果有任何问题在评论部分提出。