/**
* 比较版本号
*/
fun checkVersion(v1: String, v2: String): Int {
val nums1: Array<String> = v1.split("\\.".toRegex()).toTypedArray()
val nums2: Array<String> = v2.split("\\.".toRegex()).toTypedArray()
val n1 = nums1.size
val n2 = nums2.size
for (i in 0 until Math.max(n1, n2)) {
val num1 = if (i < n1) nums1[i].toInt() else 0
val num2 = if (i < n2) nums2[i].toInt() else 0
if (num1 != num2) {
return if (num1 < num2) -1 else 1
}
}
return 0
============================================================================================================================
/**
* 比较当前版本名字
*/
fun comparisonVersion(): Boolean {
checkVersionName = AppUtils.getAppVersionName()
MobileService(Utils.getApp()).getUrlResult("http://update.allynav.cn/pile/landVersion.html",
mSuccess = {
upgradedVersion = it
}
)
when(upgradedVersion.length > 1 && checkVersionName.length > 1){
}
if(upgradedVersion.substring(0,1) > checkVersionName.substring(0,1)) {
Log.e("11111PPPPPPPPP6 ","upgradedVersion" + upgradedVersion.substring(0,1) + checkVersionName.substring(0,1))
compare = true
}else if (upgradedVersion.substring(0,1) == checkVersionName.substring(0,1)){
if( upgradedVersion.substring(2,3) > checkVersionName.substring(2,3)){
Log.e("11111WWWWWWWW7 ","upgradedVersion" + upgradedVersion.substring(2,3) + checkVersionName.substring(2,3))
compare = true
}else if (upgradedVersion.substring(2,3) == checkVersionName.substring(2,3)){
if( upgradedVersion.substring(4,5) > checkVersionName.substring(4,5)){
Log.e("11111LLLLLLL8 ","upgradedVersion" + upgradedVersion.substring(4,5) + checkVersionName.substring(4,5))
compare = true
}else if(upgradedVersion.substring(4,5) == checkVersionName.substring(4,5)){
if( upgradedVersion.substring(5,6) > checkVersionName.substring(5,6)){
compare = true
}
Log.e("11111LLLLLLL9 ","upgradedVersion" + upgradedVersion.substring(4,5) + checkVersionName.substring(4,5))
}
}
}
return compare
}
=========================================================================================================================
fun comparisonVersion(): Int? {
checkVersionName = AppUtils.getAppVersionName()
var v1 = upgradedVersion
var v2 = checkVersionName
if (v1 == null || v1.isEmpty() || v2 == null || v2.isEmpty()) return null
val regEx = "[^0-9]"
val p = Pattern.compile(regEx)
var s1: String = p.matcher(v1).replaceAll("").trim()
var s2: String = p.matcher(v2).replaceAll("").trim()
val cha: Int = s1.length - s2.length
var buffer = StringBuffer()
var i = 0
while (i < abs(cha)) {
buffer.append("0")
++i
}
if (cha > 0) {
buffer.insert(0,s2)
s2 = buffer.toString()
} else if (cha < 0) {
buffer.insert(0,s1)
s1 = buffer.toString()
}
val s1Int = s1.toInt()
val s2Int = s2.toInt()
return if (s1Int > s2Int) 1
else 0
}
public int compareVersion(String version1, String version2) {
int i = 0, j = 0;
while (i < version1.length() || j < version2.length()) {
int[] sub1 = getSub(version1, i);
int[] sub2 = getSub(version2, j);
if (sub1[0] != sub2[0]) {
return sub1[0] > sub2[0] ? 1 : -1;
}
i = sub1[1];
j = sub2[1];
}
return 0;
}
public int[] getSub(String version, int start) {
if (start >= version.length()) {
return new int[]{0, start};
}
int num = 0;
int i = start;
while (i < version.length() && version.charAt(i) != '.') {
num = num * 10 + version.charAt(i) - '0';
i++;
}
return new int[]{num, i + 1};
}
=============================================================================================================================
/**
- 比较版本号
*/
fun comparisonVersion() {
checkVersionName = AppUtils.getAppVersionName()
if (upgradedVersion.substring(0, 1) > checkVersionName.substring(0, 1)) {
compare = 1
versionValue.postValue(compare)
} else if (upgradedVersion.substring(0, 1) == checkVersionName.substring(0, 1)) {
if (upgradedVersion.substring(2, 3) > checkVersionName.substring(2, 3)) {
compare = 1
versionValue.postValue(compare)
} else if (upgradedVersion.substring(2, 3) == checkVersionName.substring(2, 3)) {
if (upgradedVersion.substring(4, 5) > checkVersionName.substring(4, 5)) {
compare = 1
versionValue.postValue(compare)
} else if (upgradedVersion.substring(4, 5) == checkVersionName.substring(4, 5)) {
if (upgradedVersion.substring(5, 6) > checkVersionName.substring(5, 6)) {
compare = 1
versionValue.postValue(compare)
} else {
compare = 0
versionValue.postValue(compare)
}
} else {
compare = 0
versionValue.postValue(compare)
}
} else {
compare = 0
versionValue.postValue(compare)
}
} else
compare = 0
versionValue.postValue(compare)
}