Natural sorting order for alphanumeric fields

P

Paul

I have a field that contains both numeric and alphanumeric entries, so
e.g. when I do an 'order by' in sql I would get the following order

1.2
1.25
1.3
3
50
6
ALMERA
FOCUS

But in this case , the 6 should be above the 50, but the order by
looks at the first digit only.

To get around this, I tried two implemetations of the comparator class
that I found on the web
http://pierre-luc.paour.9online.fr/NaturalOrderComparator.java and
http://www.davekoelle.com/alphanum.jsp. These seemed to work well
EXCEPT for the cases containing decimal points
i.e. in the following order
1.2
1.3
1.25

Does anyone know of a sort that gets around this problem.
 
R

Rogan Dawes

Paul said:
I have a field that contains both numeric and alphanumeric entries, so
e.g. when I do an 'order by' in sql I would get the following order

1.2
1.25
1.3
3
50
6
ALMERA
FOCUS

But in this case , the 6 should be above the 50, but the order by
looks at the first digit only.

To get around this, I tried two implemetations of the comparator class
that I found on the web
http://pierre-luc.paour.9online.fr/NaturalOrderComparator.java and
http://www.davekoelle.com/alphanum.jsp. These seemed to work well
EXCEPT for the cases containing decimal points
i.e. in the following order
1.2
1.3
1.25

Does anyone know of a sort that gets around this problem.

How about something like:

public class Sorter implements Comparator {

int compare(Object o1, Object o2) {

if (o1 instanceof Number && o2 instanceof Number) {
return ((Number)o1).compareTo(o2);
} else {
return o1.toString().compareTo(o2.toString());
}

}

}

This assumes that your objects are the right type. If they are not, you
need to determine whether they are numbers or not, before comparing them.

Rogan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,905
Latest member
Kristy_Poole

Latest Threads

Top