有2个字符串,每个字符串中存储的是若干个邮件地址(用分号【;】隔开的)。
其中第一字符串作为默认的邮件收件人,如:[email protected];[email protected]
第二个字符串初始值和第一个字符串值相同,但用户可以对第二个字符串可以修改,可以增加邮件地址,或是删除邮件地址,最终把这两个字符串的邮件地址合并,但合并后不能重复。
目前本人是将两个串根据【;】将分割,对两个数组进行遍历,将第二个数组与第一数组的值比较,没有重复的就追加,但如果第一个串是[email protected];[email protected],第二个串是[email protected],即比第一个串少了,如何合并,还有如果第二个串是[email protected];[email protected];[email protected]有怎么合并,求代码示例!!!    

解决方案 »

  1.   

    你可以把他们全部拆成由一个个邮件地址组成的数组,然后数组内部循环比较 取出不同的项 最后留下的就是你想要的String[] args = {[email protected],[email protected],[email protected] ...}
      

  2.   

    public static void main(String[] args) {

    String s1 = "[email protected];[email protected]";
    String s2 = "[email protected];[email protected];[email protected]";

    Set<String> set = new TreeSet<String>();

    for(String s : s1.split(";"))
    set.add(s);
    for(String s : s2.split(";"))
    set.add(s);

    System.out.print(Arrays.toString(set.toArray()));
    }这意思?
      

  3.   

     不是,s2中没有[email protected]这个地址了,合并后的结果要是:[email protected];[email protected];[email protected]
      

  4.   


    使用HashSet类,如果有重复的,它不会添加进去的。
    所以split后,只要无脑的add后,就能得到第一个字符串和第二个字符串里所有的邮件地址,并且不重复。
      

  5.   

    并不是把s2的直接追加到s1里,是先比较s1和s2里是否有共同的,如果有则继续保留,若s2中有,s1中没有,则说明是新增的,要保留;若s1中有,s2中没有了,则说明s2中把原来(s1)中的([email protected])地址给去掉了,我现在纠结的就是这,追加好追加,删掉之前地址有点麻烦!
      

  6.   

    2楼正解啊 用SET去重就可以了啊
      

  7.   

    人家给出hashSet 的方式你就可以想想问题了。不要啥都不想就追问这才长进