|
@@ -31,8 +31,8 @@ public class ComplexStringComparator<T> implements Comparator<T> {
|
|
|
Object p1 = parts1.get(i);
|
|
|
Object p2 = parts2.get(i);
|
|
|
|
|
|
- if (p1 instanceof Integer && p2 instanceof Integer) {
|
|
|
- int cmp = ((Integer) p1).compareTo((Integer) p2);
|
|
|
+ if (p1 instanceof Long && p2 instanceof Long) {
|
|
|
+ int cmp = ((Long) p1).compareTo((Long) p2);
|
|
|
if (cmp != 0) return cmp;
|
|
|
} else {
|
|
|
int cmp = p1.toString().compareTo(p2.toString());
|
|
@@ -68,7 +68,11 @@ public class ComplexStringComparator<T> implements Comparator<T> {
|
|
|
|
|
|
if (buffer.length() > 0) {
|
|
|
if (numFlag == 1) {
|
|
|
- parts.add(Integer.parseInt(buffer.toString()));
|
|
|
+ try {
|
|
|
+ parts.add(Long.parseLong(buffer.toString()));
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ parts.add(buffer.toString());
|
|
|
+ }
|
|
|
} else {
|
|
|
parts.add(buffer.toString());
|
|
|
}
|