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 - ; i > ; i--)
{
if (int.Parse(b[i]) < int.Parse(a[i]))
{
b[i] = (int.Parse(b[i]) + ).ToString();
break;
}
if (i - >= && int.Parse(b[i-]) < int.Parse(a[i-]))
{
for (var j = i; j < a.Length; j++)
{
b[j] = "";
}
b[i-] = (int.Parse(b[i-]) + ).ToString();
break;
}
} for (int k = ; k < a.Length-; k++)
{
if (int.Parse(a[k]) < int.Parse(b[k]))
{
flag = false;//说明current是大的如果比较大小,改返回为bool,最后return flag即可
break;
}
}
return string.Join(",", b);
}
}
C#类似版本号有多个分割符可以产生的排列组合,类似版本号比较的更多相关文章
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- Hive默认分割符
1.Hive默认的分隔符 Hive的表数据,不管导出到HDFS还是本地文件系统,如果用户在导出时没有指定分割符,那么Hive表的数据在写入文件时,会使用默认的分隔符作为列分隔符,该默认的分割是“CTR ...
- java中构建同时兼容linux和windows程序时遇到的文件路径分割符问题解决方案
最近在做一个自动上传文件的客户端,因为 file.getAbsolutePath() 在Mac和linux下的分割符是“/”,而在windows操作系统下的分割符则是“\”,我们程序中固然可以通过调 ...
- php用explode,可以提供多个字符作为分割符来进行分割数组吗?
explode — 使用一个字符串分割另一个字符串, 它的函数原型如下: array explode ( string $delimiter , string $string [, int $limi ...
- hadoop2.6.0中自定义分割符
最近在学习hadoop,用的hadoop2.6.0 然后在学习编写mapreduce程序时,发现默认对文件的输入是采用每行进行分割,下面来分析下改变这个分割方式的办法: 来看看默认是怎样实现的:
- java以逗号为分割符拼接字符串的技巧
java以逗号为分割符拼接字符串的技巧 答: 不用那么多if判断,让人思维混乱,直接到最后使用deleteCharAt方法去除最后一个逗号即可. 实现代码如下所示: StringBuffer sb ...
- Android 用空格作为分割符切割字符串
项目中有需要用到空格作为分割符切割字符串,进而转为List. String wordStore = edWord.getText().toString(); String[] word = wordS ...
- JAVA中获取不同系统的换行符和获取系统路径路径分割符
简介 JAVA具有多平台特征,一次开发,多平台运行,主要依据JVM,但是不同的操作系统中换行符和分割符不同,故需要根据不同的操作系统去获取不同的符号. JAVA代码 @Test public void ...
- 小技巧之“将Text文件中的数据导入到Excel中,这里空格为分割符为例”
1.使用场景 将数据以文本导出后,想录入到Excel中,的简便方案, 起因:对于Excel的导出,Text导出明显会更方便些 2.将Text文件中的数据导入到Excel中,这里空格为分割符为例的步骤 ...
随机推荐
- 【平面图最小割】BZOJ1001- [BeiJing2006]狼抓兔子
[题目大意]左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) ...
- HDU 5715 XOR 游戏 二分+字典树
XOR 游戏 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5715 Description 众所周知,度度熊喜欢XOR运算(XOR百科). 今天,它 ...
- POJ 2104 && POJ 2761 (静态区间第k大,主席树)
查询区间第K大,而且没有修改. 使用划分树是可以做的. 作为主席树的入门题,感觉太神奇了,Orz /* *********************************************** ...
- MCP2515 : SPI CAN controller management
#ifndef __MCP2515_H #define __MCP2515_H /* mcp2515.h This file contains constants that are specific ...
- Towelroot v3.0版发布 将支持更多设备 Towelroot v3.0下载
Towelroot虽然已经发布一段时间了,虽然所Towelroot可以一键ROOT很多设备,虽然它只有100多K.不过还是有一小部分的机型没办法ROOT成功的,也不知道什么原因.不过不用担心,Geoh ...
- 网络编程_Python-网络模型.
http://xmdevops.blog.51cto.com/11144840/1861280
- Nucleus PLUS任务调度
概述 Nucleus Plus内核(Kernel)的主要目的是管理实时任务的竞争执行(共享CPU),为应用提供各种便利,高速响应外部事件.Nucleus Plus的系统结构如图1所看到的,能够看出线程 ...
- JS经常使用字符串处理方法总结
1.indexOf()方法.从前往后查找字符串位置.大写和小写敏感,从0開始计数.同理,lastIndexOf() 方法从后往前.两个方法对于同样的检索条件输出的结果是一样的 比如: <scri ...
- Spring MVC的异步模式DefferedResult
原文:http://www.importnew.com/21051.html 什么是异步模式 要知道什么是异步模式,就先要知道什么是同步模式,先看最典型的同步模式: (图1) 浏览器发起请求,Web服 ...
- IOS在一个程序中启动另一个程序
尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据.我们可以使用UIApplication类的openURL:方法从一个应用程序来 ...