【问题标题】:How to append semi-colon on to each element in an ArrayList<String> [duplicate]如何在 ArrayList<String> 中的每个元素上附加分号 [重复]
【发布时间】:2016-12-09 11:15:51
【问题描述】:

我目前正在尝试将分号附加到 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 发送电子邮件。因此,为什么我要尝试在元素上附加分号以分隔电子邮件地址。

谢谢

【问题讨论】:

  • “删除列表中的逗号是一种好习惯”是什么意思?你说的是哪个逗号?
  • 这是一个很棒的XYProblem不要在元素中放置分号,而是在生成“final”字符串时添加它们。请参阅 Nicolas Filotto 的答案,该答案完美地确定了问题。

标签: java list selenium arraylist selenium-webdriver


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      用分号删除逗号对我来说听起来并不是一个完整的证明解决方案,它将被授予者在未来不会中断。因为这需要在列表上执行 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());
      

      【讨论】:

        【解决方案4】:

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

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

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

        如果有什么问题可以在评论区提问。

        【讨论】:

          猜你喜欢
          • 2019-03-13
          • 2016-07-21
          • 1970-01-01
          • 2020-07-23
          • 1970-01-01
          • 2014-09-19
          • 1970-01-01
          • 2018-01-12
          • 2014-05-01
          相关资源
          最近更新 更多