字符串比较器

来源:互联网 发布:人工智能权威杂志 编辑:程序博客网 时间:2024/05/01 05:43

原文:字符串比较器

源代码下载地址:http://www.zuidaima.com/share/1550463741938688.htm

package com.zuidaima.util;/***@author www.zuidaima.com**/public class NumberComparator implements Comparator<Object> {private boolean ignoreCase = true;public NumberComparator() {}public NumberComparator(boolean ignoreCase) {this.ignoreCase = ignoreCase;}public int compare(Object obj1, Object obj2) {String o1 = "";String o2 = "";if (ignoreCase) {TSFunction c1 = (TSFunction) obj1;TSFunction c2 = (TSFunction) obj2;o1 = c1.getFunctionOrder();o2 = c2.getFunctionOrder();}if (o1 != null && o2 != null) {for (int i = 0; i < o1.length(); i++) {if (i == o1.length() && i < o2.length()) {return -1;} else if (i == o2.length() && i < o1.length()) {return 1;}char ch1 = o1.charAt(i);char ch2 = o2.charAt(i);if (ch1 >= '0' && ch2 <= '9') {int i1 = getNumber(o1.substring(i));int i2 = getNumber(o2.substring(i));if (i1 == i2) {continue;} else {return i1 - i2;}} else if (ch1 != ch2) {return ch1 - ch2;}}}return 0;}private int getNumber(String str) {int num = Integer.MAX_VALUE;int bits = 0;for (int i = 0; i < str.length(); i++) {if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {bits++;} else {break;}}if (bits > 0) {num = Integer.parseInt(str.substring(0, bits));}return num;}}

0 0
原创粉丝点击