gpt4 book ai didi

java - 如何使用 Java 中的 split 从字符串中获取多封电子邮件的列表?

转载 作者:行者123 更新时间:2023-12-02 02:37:05 27 4
gpt4 key购买 nike

我有这个字符串,其中包含一堆电子邮件:

" email1@gmail.com , 'email2@gmail.com,email3@gmail.com, email4@gmail.com' , 'email5@gmail.com ,email6@gmail.com' "

所以我想做的是从每个子字符串中提取每封电子邮件,并最终得到一个包含所有这些电子邮件的数组:

示例:

String[] myArray = {email1@gmail.com , email2@gmail.com, email3@gmail.com, email4@gmail.com, email5@gmail.com};

这是我的代码:

String str = "email1@gmail.com , 'email2@gmail.com,email3@gmail.com, email4@gmail.com' , 'email5@gmail.com ,email6@gmail.com'";

String[] newArray = str.split(",");
for(int i = 0 ; i < newArray.length; i++)
{
if(newArray[i].contains(","))
{
newArray = newArray[i].split(",");
}
}

请记住,一个子字符串中可能包含多个电子邮件。

最佳答案

您可以使用模式匹配和正则表达式,简单的电子邮件如下:\w+@\w+.com:multipleWordCharacter@multipleWordCharacter.com

public static void main(String[] args) {
String str = "email1@gmail.com,'email2@gmail.com,email3@gmail.com, email4@gmail.com'" +
", 'email5@gmail.com ,email6@gmail.com'";

Matcher m = Pattern.compile("\\w+@\\w+.com").matcher(str);
List<String> emailsList = new ArrayList<>();

while (m.find()){
emailsList.add(m.group());
}

String[]emailsArray = emailsList.toArray(new String[0]); // if really need an array
System.out.println(Arrays.toString(emailsArray));
}

我一开始使用了列表,因为动态添加元素非常容易,你不能使用数组,但最后你仍然可以使用我编写的代码来使用数组

<小时/>

这将打印:

[email1@gmail.com, email2@gmail.com, email3@gmail.com, email4@gmail.com, email5@gmail.com, email6@gmail.com]
<小时/>

Regex demo & Code demo

关于java - 如何使用 Java 中的 split 从字符串中获取多封电子邮件的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46163856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com