zoukankan      html  css  js  c++  java
  • C#类似版本号有多个分割符可以产生的排列组合,类似版本号比较

    我采用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);
    }
    }
  • 相关阅读:
    Samba
    百度贴吧
    baidu.com关键字查询
    vim 删除每行开头结尾空格
    read line(逐行读取)
    pycharm 激活
    rsync 启动脚本
    收藏
    elk
    sql is null
  • 原文地址:https://www.cnblogs.com/uxinxin/p/8888910.html
Copyright © 2011-2022 走看看