我採用asp.net進行演示 送給有緣人吧,可以獲得類似版本號的功能,也可以對比兩個版本號,我這裡是其他需要用逗號分割的 ...
我採用asp.net進行演示
送給有緣人吧,可以獲得類似版本號的功能,也可以對比兩個版本號,我這裡是其他需要用逗號分割的
using System; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { var b = Request.QueryString["b"]; if (string.IsNullOrEmpty(b)) { b = "0,3,5"; } var a = b;//GetNewBb("2,3,5", b);//沒有解決低位重新計算 while (a != "2,3,5") { b = a; a = GetNewVersion("2,3,5", b); Response.Write(a + "<br />"); } } private string GetNewVersion(string max, string current,char separator=',') { var a = max.Split(separator);//分割字元 var b = current.Split(separator);//分割字元2 var flag = true;//設第一個大 for (int i = a.Length - 1; i > 0; i--) { if (int.Parse(b[i]) < int.Parse(a[i])) { b[i] = (int.Parse(b[i]) + 1).ToString(); break; } if (i - 1 >= 0&& int.Parse(b[i-1]) < int.Parse(a[i-1])) { for (var j = i; j < a.Length; j++) { b[j] = "0"; } b[i-1] = (int.Parse(b[i-1]) + 1).ToString(); break; } } for (int k = 0; k < a.Length-1; k++) { if (int.Parse(a[k]) < int.Parse(b[k])) { flag = false;//說明current是大的如果比較大小,改返回為bool,最後return flag即可 break; } } return string.Join(",", b); } }