java - 无法从java中的字符串数组中获取匹配的字符串值
问题描述
我有一个字符串值,其中包含用逗号分隔的电子邮件地址,我必须检查是否从字符串数组中添加了任何相同的邮件地址
我使用 split 来获取以逗号分隔的电子邮件地址数组,然后声明两个 for 循环进行检查。在内部 for 循环中,我指定了条件,但它只是打印所有邮件地址。如何获得匹配的电子邮件地址和唯一的电子邮件地址
public class EmailDomains {
public static void main(String[] args) {
String st = "test1@gmail.com,"
+ "test2@gmail.com,"
+ "test@yahoo.com,"
+ "test@hotmail.com,"
+ "test@rediff.com,"
+ "test@rediff.com,"
+ "wer@gmailcom";
st.trim();
String[] total = st.split("\\,");
//System.out.println(total.length);
for(int i=0;i<total.length;i++) {
for(int j=0;j<total.length;j++)
{
System.out.println(total[i]+" --- "+total[j]);
if(total[i].trim().equals(total[j].trim()))
{
/*
* System.out.println(total[i]); break;
*/
}
}
//System.out.println(total[i]);
}
}
}
需要从上述字符串中获取匹配和不匹配的电子邮件地址
朋友们,我必须将匹配的邮件存储在一个数组中,并将唯一的邮件存储在另一个数组中,以便我可以使用唯一的邮件 ID 进行验证,请给我一个想法,因为我是初学者,我需要帮助并提前致谢
解决方案
您正在通过列表两次 - 使用i
和再次使用j
。有时i
和j
是相同的值,比如“3”。在这种情况下if(total[i].trim().equals(total[j].trim()))
是正确的 - 这是有道理的,因为您正在将列表中的特定条目与其自身进行比较。
看起来您想忽略何时i
和j
是相同的。您可以通过添加if
检查来做到这一点,如下所示:
for (int i = 0; i < total.length; i++) {
for (int j = 0; j < total.length; j++) {
if (i != j) {
if (total[i].trim().equals(total[j].trim())) {
System.out.println(total[i] + " --- " + total[j]);
}
}
}
}
推荐阅读
- jquery - Ajax get text file with no extension
- mysql - Two SELECT query on one table with different ORDER in MySQL
- mongodb - LoopBack4 MongoDB 自动增量自定义 ID
- sql - 如何修复此消息 8117,级别 16,状态 1,服务器 WIN-ILO9GLLB9J0,第 2 行操作数数据类型 varchar 对 avg 运算符无效
- laravel - LARAVEL 加载资源失败:服务器响应状态为 404(未找到)
- c# - 在富文本框中自动生成文本
- python - 为什么有这么多python版本在使用?
- java - 使用 Spring Data JPA 和 postgresql 将字符串转换为 @Query 中的时间戳
- android - 如何在gridview中添加图像?我从 API 获取网格数据,但我想将图像添加到该 gridView
- jenkins-pipeline - 根据脚本输出提前退出声明性管道