Problema
Compare dos números de versión version1 y version2. Si versión1> versión2 devuelve 1, si versión1
0.1 < 1.1 < 1.2 < 13.37
Solución Java
La parte complicada del problema es manejar casos como 1.0 y 1. Deben ser iguales.
public int compareVersion(String version1, String version2) { String[] arr1 = version1.split("."); String[] arr2 = version2.split("."); int i=0; while(i<arr1.length || i<arr2.length){ if(i<arr1.length && i<arr2.length){ if(Integer.parseInt(arr1[i]) < Integer.parseInt(arr2[i])){ return -1; }else if(Integer.parseInt(arr1[i]) > Integer.parseInt(arr2[i])){ return 1; } } else if(i<arr1.length){ if(Integer.parseInt(arr1[i]) != 0){ return 1; } } else if(i<arr2.length){ if(Integer.parseInt(arr2[i]) != 0){ return -1; } } i++; } return 0; } |