有两个逗号分隔的字符串,保证最终得到的结果为"1083,1029,1098",请教大家该如何处理,谢谢!

String mgrDeptConfigId ="1092,1032,1072";//配置数据
String mgrDeptid = "1072,1083,1032,1029,1098,1092";//用户选择的数据

    有两个逗号分隔的字符串,请问如何在mgrDeptid中过滤掉mgrDeptConfigId中的值,保证最终得到的结果为"1083,1029,1098",请教大家该如何处理,谢谢!

String mgrDeptConfigId ="1092,1032,1072";//配置数据
String mgrDeptid = "1072,1083,1032,1029,1098,1092";//用户选择的数据
String[] mdcs = mgrDeptConfigId.split(",");
String[] mds = mgrDeptid.split(",");
HashSet set1 = new HashSet(Arrays.asList(mdcs));
HashSet set2 = new HashSet(Arrays.asList(mds));
set2.removeAll(set1);
System.out.println(set2.toString());

可以先把字符串转为数组然后去重

java?不懂语法,之说简单的,不考虑复杂度的过程吧。
1. 两个字符串按照“,”分割,得到两个字符串数组A、B
2. 拿B中的每个元素与A中的各个元素比较,相同的忽略;完全不同的添加进一个新的数组C中
3. 将C每个元素加上“,”拼成新的字符串

1.直接往set存,自动去重。
2.使用list的contains方法判断去重。
3.笨办法,2次遍历如果相等就去掉重复的元素。

如下

public static void main(String[] args) {
        String mgrDeptConfigId = "1092,1032,1072";// 配置数据
        String mgrDeptid = "1072,1083,1032,1029,1098,1092";// 用户选择的数据
        // 先转换成list
        List<String> list = Arrays.asList(mgrDeptid.split(","));
        // 转换成ArrayList
        List arrayList = new ArrayList(list);
        // 遍历ArrayList
        Iterator<String> it = arrayList.iterator();
        while (it.hasNext()) {
            String x = it.next();
            // 如果存在,直接删除
            if (mgrDeptConfigId.indexOf(x) != -1) {
                it.remove();
            }
        }
        String you_want = StringUtils.join(arrayList.toArray(), ",");
        System.out.println(you_want);
    }

字符串转数组,然后去重就好了。
String aa = "1092,1032,1072";//配置数据
String bb = "1092,1072,1083,1032,1029,1098";//用户选择的数据

            String[] aaSplit = aa.split(",");
    String[] bbSplit = bb.split(",");
    List<String> aaList = Arrays.asList(aaSplit);
    List<String> bbList = Arrays.asList(bbSplit);
    List<String> ccList = new ArrayList<>();
    for (int i = 0; i < bbList.size(); i++) {
        boolean contains = aaList.contains(bbList.get(i));
        if (!contains) {
            ccList.add(bbList.get(i));
        }
    }