String str1 = "0708,0088,0701,0600";String str4 = "0701,0600,0206";我想比较str1和str4里面的元素,然后取出他们相同的存放到另外一个字符串中,如String result = "0701,0600",把不相同的字符串删除掉,是不是要用到递归?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【10yue】截止到2008-06-30 00:13:28的历史汇总数据(不包括此帖):
    发帖数:8                  发帖分:310                
    结贴数:7                  结贴分:280                
    未结数:1                  未结分:30                 
    结贴率:87.50 %            结分率:90.32 %            
    楼主加油
      

  2.   

    首先是转成字符串数组,也就是调用split(","),再把它们转换成List,然后就是遍历其中的一个List中的每一个元素,看看另一个List中有没有.如果有就放到一个字符串中.package com.awu.xml;import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;public class StringFineSame {
    public static void main(String[]args)
    {
    String str1 = "0708,0088,0701,0600";  String str4 = "0701,0600,0206"; 
    List list1 = Arrays.asList(str1.split(","));
    List list4 = Arrays.asList(str4.split(","));
    Iterator it = list1.iterator();
    StringBuffer sb = new StringBuffer("");
    while(it.hasNext())
    {
    Object o = it.next();
    if(list4.contains(o))
    {
    sb.append(o.toString()+",");
    }
    }
    if(!sb.toString().equals(""))
    {
    System.out.println(sb.substring(0,sb.length()-1));
    }

    }
    }
      

  3.   

        list.retainAll(list2);请按照小A的做法,生成2个List对象,然后调用 retainAll 方法看看吧!实际上就是交集!
      

  4.   

        String str1 = "0708,0088,0701,0600";
        String str4 = "0701,0600,0206";
        Set<String> set1 = new HashSet<String>(Arrays.asList(str1.split(",")));
        Set<String> set4 = new HashSet<String>(Arrays.asList(str4.split(",")));
        set1.retainAll(set4);
        for (String s : set1) {
          System.out.print(s + ",");
        }难道只有set才支持 retainAll吗?奇怪了。 Arrays返回的List竟然不支持!
      

  5.   

    import java.util.*;
    public class StringTest {
    public static void main(String[] args) {
    String str1 = "0708,0088,0701,0600"; 
    String str2 = "0701,0600,0206"; 
    StringTokenizer st1=new StringTokenizer(str1,",");
    StringTokenizer st2=new StringTokenizer(str2,",");
    //String s="";
    List s1=new ArrayList();
    List s2=new ArrayList();
    StringBuffer s=new StringBuffer();
    while(st1.hasMoreTokens()){
    s1.add(st1.nextToken());
    }
    while(st2.hasMoreTokens()){
    s2.add(st2.nextToken());
    }
    for(int i=0;i<s1.size();i++){
    for(int j=0;j<s2.size();j++){
    if(s1.get(i).equals(s2.get(j))){
    s.append(s1.get(i));
    }
    }

    }
    System.out.println(s.toString()); }}
    好像麻烦点  不过轻松实现
      

  6.   

            /**
             * 比较2组字符串中相同的元素
             * @param str1
             * @param str2
             * @return
             */
            public String strCompareTo(String str1,String str2)
            {
                String strs = "";
                
                List list1 = Arrays.asList(str1.split(","));
                List list2 = Arrays.asList(str2.split(","));
                
                StringBuffer sb = new StringBuffer();
                
                Iterator it = list1.iterator();
                
                while(it.hasNext())
                {
                    Object o = it.next();
                    if(list2.contains(o))
                    {
                        sb.append(o.toString()+",");
                    }
                    
                    if(!sb.toString().equals(""))
                    {
                        strs = sb.substring(0,sb.length()-1);
                    }
                }
                return strs;
            }把AWUSOFT的代码封装了一下,问题解决了。谢谢各位!