Я предполагаю, что вы хотите отсортировать, используя один из встроенных методов сортировки. В этом случае вам нужно будет создать пользовательский Comparator<T>
, реализующий compare()
и equals()
, который пытается проанализировать строки как Double
, а при перехвате исключения реализует некоторое нормальное поведение по умолчанию. Убедитесь, что вы перехватили исключение в ваших методах - вы можете столкнуться с проблемами только в том случае, если вы позволите исключениям попасть в код API Java.
В качестве быстрого примера, чтобы вы начали:
class DoubleStringComparator implements Comparator<String> {
public int compare(String o1, String o2) {
try {
double d1 = Double.parse(o1);
double d2 = Double.parse(d2);
if d1 > d2 {
return 1;
} else if d1 < d2 {
return -1;
else {
return 0;
}
} catch (NumberFormatException e) {
// whatever ordering you want to impose when one string is not a double
}
}
// some definition of equals() - whatever makes sense for your application
}
Затем, когда вы хотите сделать сортировку:
Collections.sort(someListOfString, new DoubleStringComparator());