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 + "
    ");

      }

      }

      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);

      }

      }

      复制代码(编辑:雷林鹏 来源:网络)

  • 相关阅读:
    Multi-Channel Buffers
    FFmpeg 的bug
    关于游戏的网络同步探索1
    预处理、编译、汇编、链接、启动代码、相关command
    Linux命令——whiptail交互式shell脚本对话框
    实模式、保护模式、三种地址、分段、分页
    XAMPP + PhpStorm + Xdebug本地实验环境搭建
    Web数据库架构
    PHP语法基础
    A quick introduction to Source Insight for seamless development platform between Linux and Windows
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9412731.html
Copyright © 2011-2022 走看看