java比较两个字符串完全不同处高亮显示(过滤了某些字符串前面不不相干字符)
来源:互联网 发布:秒快软件 编辑:程序博客网 时间:2024/05/23 21:53
java比较两个字符串完全不同处高亮显示(过滤了某些字符串前面不相干字符)
欢迎各位使用并优化,因为我也不太清楚这里面是不是有严重的问题,后期我会再度优化的,写这个东西主要是因为在网上很难找到类似的东西= =。
再说一句,请各位大佬带我飞好嘛!!毕竟我是个小码农。。
public class CompareStrUtil { // 长字符串向短字符串比 public static String compareStrLong(String char1, String char2, String colour) { String bcolor = "<font color='" + colour + ";'>"; String ecolor = "</font>"; StringBuffer sb = new StringBuffer(); char[] a = new char[char1.length()]; for (int i = 0; i < char1.length(); i++) { a[i] = char1.charAt(i); } char[] b = new char[char2.length()]; for (int i = 0; i < char2.length(); i++) { b[i] = char2.charAt(i); } // 不同字符集合 Map<Object, Object> map1 = new HashMap<Object, Object>(); // 包含字符集合 Map<Object, Object> map2 = new HashMap<Object, Object>(); if (char1.length() > char2.length()) { for (int i = 0; i < a.length; i++) { if (i == a.length - 1) { if (i > 1) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); }else{ map1.put(i, a[i]); } } else { map2.put(i, a[i]); } } else { if (String.valueOf(b).contains(String.valueOf(a[i]) + String.valueOf(a[i + 1]))) { if (i > 1) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); } } else { map2.put(i, a[i]); } } else { if (i > 0) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); } else { map1.put(i, a[i]); } } else { map1.put(i, a[i]); } } } } } else { for (int i = 0; i < b.length; i++) { if (i == b.length - 1) { if (i > 1) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); }else{ map1.put(i, b[i]); } } else { map2.put(i, b[i]); } } else { if (String.valueOf(a).contains(String.valueOf(b[i]) + String.valueOf(b[i + 1]))) { if (i > 1) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); } } else { map2.put(i, b[i]); } } else { if (i > 0) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); } else { map1.put(i, b[i]); } } else { map1.put(i, b[i]); } } } } } if (char1.length() > char2.length()) { for (int i = 0; i < a.length; i++) { if (map1.get(i) != null) { sb.append(bcolor).append(map1.get(i)).append(ecolor); } else if (map2.get(i) != null) { sb.append(map2.get(i)); } } } else if (char1.length() <= char2.length()) { for (int i = 0; i < b.length; i++) { if (map1.get(i) != null) { sb.append(bcolor).append(map1.get(i)).append(ecolor); } else if (map2.get(i) != null) { sb.append(map2.get(i)); } } } return sb.toString(); } // 短字符串向长字符串比 public static String compareStrshort(String char1, String char2, String colour) { String bcolor = "<font color='" + colour + ";'>"; String ecolor = "</font>"; StringBuffer sb = new StringBuffer(); char[] a = new char[char1.length()]; for (int i = 0; i < char1.length(); i++) { a[i] = char1.charAt(i); } char[] b = new char[char2.length()]; for (int i = 0; i < char2.length(); i++) { b[i] = char2.charAt(i); } // 不同字符集合 Map<Object, Object> map1 = new HashMap<Object, Object>(); // 包含字符集合 Map<Object, Object> map2 = new HashMap<Object, Object>(); if (char1.length() > char2.length()) { for (int i = 0; i < b.length; i++) { if (i == b.length - 1) { if (i > 1) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); }else{ map1.put(i, b[i]); } } else { map2.put(i, b[i]); } } else { if (String.valueOf(a).contains(String.valueOf(b[i]) + String.valueOf(b[i + 1]))) { if (i > 1) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); } } else { map2.put(i, b[i]); } } else { if (i > 0) { if (String.valueOf(a).contains(String.valueOf(b[i - 1]) + String.valueOf(b[i]))) { map2.put(i - 1, b[i - 1]); map2.put(i, b[i]); } else { map1.put(i, b[i]); } } else { map1.put(i, b[i]); } } } } } else { for (int i = 0; i < a.length; i++) { if (i == a.length - 1) { if (i > 1) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); }else{ map1.put(i, a[i]); } } else { map2.put(i, a[i]); } } else { if (String.valueOf(b).contains(String.valueOf(a[i]) + String.valueOf(a[i + 1]))) { if (i > 1) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); } } else { map2.put(i, a[i]); } } else { if (i > 0) { if (String.valueOf(b).contains(String.valueOf(a[i - 1]) + String.valueOf(a[i]))) { map2.put(i - 1, a[i - 1]); map2.put(i, a[i]); } else { map1.put(i, a[i]); } } else { map1.put(i, a[i]); } } } } } if (char1.length() > char2.length()) { for (int i = 0; i < a.length; i++) { if (map1.get(i) != null) { sb.append(bcolor).append(map1.get(i)).append(ecolor); } else if (map2.get(i) != null) { sb.append(map2.get(i)); } } } else if (char1.length() <= char2.length()) { for (int i = 0; i < b.length; i++) { if (map1.get(i) != null) { sb.append(bcolor).append(map1.get(i)).append(ecolor); } else if (map2.get(i) != null) { sb.append(map2.get(i)); } } } return sb.toString(); }}
0 0
- java比较两个字符串完全不同处高亮显示(过滤了某些字符串前面不不相干字符)
- 判断两个字符串中出现的字符是否完全一样(顺序可以不同)
- Java过滤字符串无效字符
- 判断字符串中的字符是否完全不同
- 怎么比较两个json字符串完全相等
- 比较两个JSON字符串是否完全相等
- 连接两个字符串中的不同字符-LintCode
- 将两个字符串找出不同,并将不同处高亮显示
- JAVA中比较两个字符串
- 两个字符串比较,取出重复字符个数。 (原创)
- 比较两个字符串中的字符,并交换
- 快速比较两个字符串中字符完全相同(兄弟字符串比较)
- 快速比较两个字符串中字符完全相同(兄弟字符串比较)
- C比较两个字符串中的不同的字符串
- 不区分大小写比较两个字符串
- CompareNoCase 比较两个字符串,不区分大小写
- java过滤字符串中非数字字符
- 比较两个字符串的最长公共子序列的长度,字符不区分大小写
- Tomcat6 中设置shared目录
- Node.js 命令行程序开发教程
- ListView中每个item条目上控件的点击事件
- 如何列出某个目录下的所有子目录? 3)如何判断一个文件或目录是否存在? 4)如何读写文件?
- NYoj1282部分和问题(dfs入门)
- java比较两个字符串完全不同处高亮显示(过滤了某些字符串前面不不相干字符)
- Android 内存优化-消除卡顿
- IOS 查看和添加路由条目
- javaWeb session失效时间设置
- python logging模块 自定义输出
- H5+C3+JS实现五子棋 - UI篇
- 常用的电平标准
- 欢迎使用CSDN-markdown编辑器
- 求教:如何处理下面图中List集合信息?