public class CompareVersion {
public int compareVersion(String version1, String version2) {
String[] stringArray = version1.split("\\.");
String[] stringArray2 = version2.split("\\.");
for (int i = 0, j = 0; i < stringArray.length && j < stringArray2.length; i++, j++) {
if (reverse(stringArray[i]) > reverse(stringArray2[j])) {
return 1;
}else if (reverse(stringArray[i]) < reverse(stringArray2[j])) {
return -1;
}
}
if (stringArray.length == stringArray2.length) {
return 0;
}else if (stringArray.length > stringArray2.length) {
int i = stringArray2.length;
while (i <= stringArray.length - 1) {
if (reverse(stringArray[i]) > 0) {
return 1;
}
i++;
}
}else {
int i = stringArray.length;
while (i <= stringArray2.length - 1) {
if (reverse(stringArray2[i]) > 0) {
return -1;
}
i++;
}
}
return 0;
}
public int reverse(String s) {
int x = 1;
int result = 0;
for (int i = 0; i < s.length(); i++) {
if (result == 0 && (s.charAt(i) - '0') == 0) {
continue;
}
x *= 10;
result *= x;
result += (s.charAt(i) - '0');
}
return result;
}
public static void main(String[] args) {
CompareVersion cp = new CompareVersion();
cp.compareVersion("1.01", "1.1");
String[] strings = "1.01".split("\\.");
System.out.println(strings.length);
}
}
1.split("\.")需要转译文符
2.思维不够连贯