From: "Michael W. Ryder" <_mwryder@...> Date: 2008-10-13T09:02:20+09:00 Subject: Re: Sorting help Ron Askew wrote: > I the values are actually numeric, they should be stored as numerics, > manipulated as numerics, and sorted as numerics. > > So... the question is: WHY ARE THEY STRINGS? > The data may be coming from another source that the OP has no control over. In the language I do most of my programming in, Business Basic, everything is stored as a string, so 12.35 is stored as "12.25" instead of it's binary representation. When I have this problem in Business Basic what I do is add leading zeros before storing the numbers in a file. The file system in Business Basic allows me to store records in a file and automatically sorts them by the key value. This means that you have to know in advance the size of the numbers. What I would do is store the strings as ["10.1", "07.4", "10.9", "10.11", "10.10"] and this should sort properly. In the second case I would store the number as "10.01.25". Now if the numbers are something like TCP addresses this method probably won't work. > -----Original Message----- > From: binh@pigbaby.net [mailto:binh@pigbaby.net] > Sent: Sunday, October 12, 2008 7:24 PM > To: ruby-talk ML > Subject: Sorting help > > Hello All, > > I would like to request some helping with a sorting problem I have. > > Given an array with values like this ["10.1", "7.4", "10.9", "10.11", > "10.10"] > > when I sort it i get something like ["10.1", "10.10", "10.11", "10.9", > "7.4"] > > What is the best way to sort such an array of strings? > > What if the string was extended to "10.1.25". > > Any advice would be greatly appreciated. > > Thank you. > > Binh