首页 新闻 会员 周边

求,如何用java来删除数组中指定的元素

0
悬赏园豆:5 [待解决问题]

String str = dianjia2,wang,dianjia;

String str1 = dianjia2,dianjia;

如上面两个字符串,如何根据str1的字段来相应删除str中相同的字段,最后得到的结果是wang,求指教?????

虎犊求知的主页 虎犊求知 | 初学一级 | 园豆:122
提问于:2012-03-12 11:13
< >
分享
所有回答(5)
1

由于机子上没有Java开发环境,给个思路吧:

把第二个字符串转成数组,然后遍历一遍,把第一个字符串中包含的部分替换掉就行了

artwl | 园豆:16736 (专家六级) | 2012-03-12 11:23
-1

以“,”作为分隔符号,str调用replace方法将指定的子字符串替换掉就可以了。

zsounder | 园豆:2819 (老鸟四级) | 2012-03-12 11:25
-1

可以考虑把这两个字符串看成两个集合,针对后面在的集合str1在集合str中查找是否存在相同的元素,这样可以使用Hashset来实现,但是算法效率很低,应该从算法上来考虑优化。

Yakov | 园豆:205 (菜鸟二级) | 2012-03-12 11:26

可不可以用代码实现给我看看,,求??

支持(0) 反对(0) 虎犊求知 | 园豆:122 (初学一级) | 2012-03-12 12:49
-1

HashSet<String> h1 = new HashSet<String>();
   HashSet<String> h2 = new HashSet<String>();
   for(int i=0;i<str.split(",").length;i++){
    h1.add(str.split(",")[i]);
   }
   for(int i=0;i<str1.split(",").length;i++){
    h2.add(str1.split(",")[i]);
   }
   h1.removeAll(h2);

wofengletian | 园豆:172 (初学一级) | 2012-03-12 16:44

最后打印h1就可以了。一些别的情况没有考虑,自己改就好了。

支持(0) 反对(0) wofengletian | 园豆:172 (初学一级) | 2012-03-12 16:46
0

public static void main(String[] args){
        String[] a = new String[]{"1","5","3","7"};
        String[] b = new String[]{"2","3","4"};
        String[] arrResult = arrContrast(a, b);       
        for (String strResult : arrResult) {
            System.out.println("最后的结果:----------->" + strResult);
        }
    }
    
    //处理数组字符
    private static String[] arrContrast(String[] arr1, String[] arr2){
        List<String> list = new LinkedList<String>();
        for (String str : arr1) {                //处理第一个数组,list里面的值为1,2,3,4
            if (!list.contains(str)) {
                list.add(str);
            }
        }
        for (String str : arr2) {      //如果第二个数组存在和第一个数组相同的值,就删除
            if(list.contains(str)){
                list.remove(str);
            }
        }
        String[] result = {};   //创建空数组
        return list.toArray(result);    //List to Array
    }

虎犊求知 | 园豆:122 (初学一级) | 2012-04-09 13:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册