fork(1) download
  1. import java.util.*;
  2. import static java.util.Comparator.*;
  3.  
  4. class Ideone {
  5. public static void main(String[] args) {
  6. List<String> strings = Arrays.asList("room1.2", "foo1.1", "room2.3", "room100.999", "room10", "room.3");
  7. Collections.sort(strings, Comparator.comparing(Ideone::extractDouble));
  8. System.out.println(strings);
  9. }
  10.  
  11. static double extractDouble(String s) {
  12. String num = s.replaceAll("[^\\d.]", "");
  13. // return 0 if no digits found
  14. return num.isEmpty() ? 0 : Double.parseDouble(num);
  15. }
  16. }
Success #stdin #stdout 0.11s 39420KB
stdin
Standard input is empty
stdout
[room.3, foo1.1, room1.2, room2.3, room10, room100.999]