Java 如何将分号附加到ArrayList中的每个元素<;字符串>;
我目前正试图在ArrayList中每个元素的末尾追加一个分号 守则:Java 如何将分号附加到ArrayList中的每个元素<;字符串>;,java,list,selenium,arraylist,selenium-webdriver,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 emailAddr
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);
}
ArrayList emailAddresses=新的ArrayList();
public void getEmailAddresses()引发InterruptedException{
driver.findElement(By.className(“userlink-0”))。单击();
字符串emailAddress=driver.findElement(By.id(“email”)).getText();
emailAddress.add(emailAddress);
hs.addAll(电子邮件地址);
emailAddresses.clear();
emailAddresses.addAll(hs);
}
最终,我将获取这个电子邮件地址列表,并将其输出到收件人字段,以便使用Java发送电子邮件。因此,我试图在元素中添加分号,以便分隔电子邮件地址
感谢作为原始解决方案,您可以使用:
for (int i = 0; i < emailAddresses.size(); i++) {
emailAddresses.set(i, emailAddresses.get(i).concat(";"));
}
for(int i=0;i
作为基本解决方案,您可以使用:
for (int i = 0; i < emailAddresses.size(); i++) {
emailAddresses.set(i, emailAddresses.get(i).concat(";"));
}
for(int i=0;i
在我看来,删除带有分号的逗号并不是一个完全可靠的解决方案,将来不会被破坏。因为这需要在列表上执行syso,然后使用regex替换逗号和方括号。相反,我将使用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());
StringBuilder str=new StringBuilder();
对于(int i=0;i
在我看来,删除带有分号的逗号并不是一个完全可靠的解决方案,将来不会被破坏。因为这需要在列表上执行syso,然后使用regex替换逗号和方括号。相反,我将使用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());
StringBuilder str=new StringBuilder();
对于(int i=0;i
假设您使用Java 8,您可以使用流API
和as收集器来实现这一点,该收集器允许按如下顺序连接由指定分隔符分隔的输入元素:
假设您使用的是Java 8,那么您可以使用
流API
和as收集器来实现这一点,as收集器允许按如下顺序连接由指定分隔符分隔的输入元素:
在将每个元素添加到ArrayList时,可以将它们添加到分号。但是假设您想稍后进行一些处理,那么现在您必须处理您添加的额外半酒精 因此,更好的解决方案可能是,只需按原样添加所有元素,并在收件人字段中需要它们的地方打印以下行:
System.out.println(emailAddresses .toString().replace("[", "").replace("]", "").replace(",", ";"));
如果有任何问题,请在注释部分询问。您可以在将每个元素添加到ArrayList的同时将其添加到分号。但是假设您想稍后进行一些处理,那么现在您必须处理您添加的额外半酒精 因此,更好的解决方案可能是,只需按原样添加所有元素,并在收件人字段中需要它们的地方打印以下行:
System.out.println(emailAddresses .toString().replace("[", "").replace("]", "").replace(",", ";"));
如果有任何问题,请在评论部分提问。你说的“删除列表中的逗号是否是一种好做法”是什么意思?你说的是哪一个逗号?这是一个很好的例子!不要在元素中添加分号,而是在生成“final”字符串时添加分号。尼古拉斯·菲洛托的回答完美地指出了问题所在。你说“删除列表中的逗号是一种好的做法”是什么意思?你说的是哪一个逗号?这是一个很好的例子!不要在元素中添加分号,而是在生成“final”字符串时添加分号。参见Nicolas Filotto的答案,该答案完美地确定了问题所在。