package edu.usc.enl.dynamicmeasurement.util;
import java.math.BigInteger;
import java.util.Comparator;
/**
* Created with IntelliJ IDEA.
* User: masoud
* Date: 9/24/13
* Time: 12:19 AM <br/> Can compare objects recognizing a hierarchy of numbers in their toString
*/
public class NumberAwareComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
String o1s = o1.toString();
String o2s = o2.toString();
if (o1s.replaceAll("\\d", "").equals(o2s.replaceAll("\\d", ""))) { //to handle integer
return new BigInteger(o1s.replaceAll("\\D", "")).compareTo(new BigInteger(o2s.replaceAll("\\D", "")));
}
return o1s.compareTo(o2s);
}
}