字符串比较,List集合比较,结果集的比较

博主还是刚入门的菜鸟 有更好的 欢迎大家留言

1。字符串之间的比较 (包含区分大小写,空格和特殊字符 \n\t\t)

/**
 * @param str1
 * @param str2
 * @param ignoreSapce 是否忽略空格
 * @param ignoreCase  是否忽略大小写
 * @return

 */

 

public static boolean cmpStr(String str1, String str2, boolean ignoreSapce, boolean ignoreCase) throws Exception {
    if (null == str1 && null == str2) {
        return true;
    } else if (null == str1 && null != str2) {
        return false;
    } else if (null != str1 && null == str2) {
        return false;
    }
    String a = new String(str1), b = new String(str2);
    StringBuffer sb = new StringBuffer();
    StringBuffer sb1 = new StringBuffer();
    if (ignoreCase) {
        a = a.toUpperCase();
        b = b.toUpperCase();
    }
    if (ignoreSapce) {
        char[] char1 = a.toCharArray();
        char[] char2 = b.toCharArray();
        for (char ch1 : char1) {
          if (ch1=='\n' || ch1 == '\r' || ch1 == '\t' || ch1 == ' '){
              continue;
          }else {
              sb.append(ch1);
          }
        }
        for (char ch2 : char2) {
            if (ch2=='\n' || ch2 == '\r' || ch2 == '\t' || ch2 == ' '){
                continue;
            }else {
                sb1.append(ch2);
            }
        }
        a = new String(sb.toString());
        b = new String(sb1.toString());
    }
    return a.equals(b);

 

}

2必须两个List集合是否一样(调用第一个方法)这个很简单 其实就是把list转为String然后调用第一个就可以了

 



/**
 * @param line1
 * @param line2
 * @param ignoreSapce 是否忽略空格
 * @param ignoreCase  是否忽略大小写
 * @return
 */
public static boolean cmpLine(List<String> line1, List<String> line2, boolean ignoreSapce, boolean ignoreCase)
        throws Exception {
    if (null == line1 && null == line2) {
        return true;
    } else if (null == line1 && null != line2) {
        return false;
    } else if (null != line1 && null == line2) {
        return false;
    }
    if (line1.size() != line2.size()) {
        return false;
    }
    if (!cmpStr(line1.toString(), line2.toString(), ignoreSapce, ignoreCase)) {//调用第一个字符串的比较
        return false;
    }
    return true;
}

3。比较两个结果集是否相等(这里有结果集的排序用到Collections.sort进行排序 不在此进行详细介绍)

/**
 * @param data1
 * @param data2
 * @param ignoreSapce 是否忽略空格
 * @param ignoreCase  是否忽略大小写
 * @param ignoreOrder 是否忽略顺序
 * @return
 */
public static boolean cmpData(List<List<String>> data1, List<List<String>> data2, boolean ignoreSapce,
                              boolean ignoreCase, boolean ignoreOrder) throws Exception {
    if (null == data1 && null == data2) {
        return true;
    } else if (null == data1 && null != data2) {
        return false;
    } else if (null != data1 && null == data2) {
        return false;
    }
    if (data1.size() != data2.size()) {
        return false;
    }
    List<String> d1 = new ArrayList<String>();
    List<String> d2 = new ArrayList<String>();
    for (int i = 0; i < data1.size(); i++) {
        List<String> al = data1.get(i);
        List<String> bl = data2.get(i);
        if (al == null) {
            d1.add("null");
        } else {
            d1.add(al.toString());
        }


        if (bl == null) {
            d2.add("null");
        } else {
            d2.add(bl.toString());
        }
    }
    if (ignoreOrder) {
        Collections.sort(d1);
        Collections.sort(d2);
    }
    return cmpLine(d1, d2, ignoreSapce, ignoreCase);//此处调用第二个方法

}

测试数据

 public static void main(String[] args) throws Exception {
List<List<String>> data1 = new ArrayList<List<String>>();
List<List<String>> data2 = new ArrayList<List<String>>();
List<String> l1 = new ArrayList<String>();
List<String> l2 = new ArrayList<String>();
l1.add("11");
l1.add("22");
l2.add("33");
l2.add("44");
data1.add(l1);
data1.add(l2);
List<String> l3 = new ArrayList<String>();
List<String> l4 = new ArrayList<String>();
l3.add("33");
l3.add("44");
l4.add("11");
l4.add("22");
data2.add(l3);
data2.add(l4);
System.out.println(cmpData(data1, data2, false, false, false));
System.out.print(cmpData(data1, data2, false, false, true));
      String str="\r\n\t";
      String str1="\r\t";
      if (s1.equals(s2)){
          System.out.println();
      }
      System.out.println(cmpStr("a\n    \r\n abbb", "a\t abbb", true, true));
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值