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中,这里空格为分割符为例的步骤 ...
随机推荐
- 【20181103T2】图【结论+bfs最短路】
一眼最短路 --感觉是个结论啊 建超级源汇? 什么鬼 合并ab和cd? 不一样的吗 开始想的至少有一条路径是最短路 然后发现不对: 开始对着这个图瞎想 从B开始找A的最短路,然后把到B小于等于的边赋成 ...
- Kolibri v2.0-Buffer Overflow成功复现
Kolibri v2.0-Buffer Overflow成功复现及分析 文件下载地址:http://pan.baidu.com/s/1eS9r9lS 正文 本次讲解用JMP ESP的方法溢出 关于网上 ...
- hdu 4452 Running Rabbits 模拟
Running RabbitsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- vue 组件开发 props 验证
使用props 在Vue中父组件向子组件中传送数据是通过props实现的,一个简单的使用props的例子: <!DOCTYPE html> <html> <head> ...
- mySql---or和in的效率问题(和<=、>=、between之间的关系)
写在前面: 本文是直接拿取的别人的实验数据作参考,然后对数据作分析. 参考网友的测试数据结果: 在网上一直看到的是or和in的效率没啥区别,一直也感觉是这样,前几天刚好在看<mysql数据库开发 ...
- 单源最短路径-迪杰斯特拉算法(Dijkstra's algorithm)
Dijkstra's algorithm 迪杰斯特拉算法是目前已知的解决单源最短路径问题的最快算法. 单源(single source)最短路径,就是从一个源点出发,考察它到任意顶点所经过的边的权重之 ...
- Java_模拟comet的实现
本文没有使用任何comet服务器, 只是利用tomcat模拟实现了一下comet, 不是真正的comet哦,因为不会有这样的应用场景, 只是模拟实现, 仅供参考. 一. 需求. 实现将服务端的时间推送 ...
- Go语言Web框架gwk介绍 (四)
事件 gwk支持事件系统,但并没有硬编码有哪些事件,而是采用了比较松散的定义方式. 订阅事件有两种方式: 调用On函数或者OnFunc函数 func On(moudle, name string, h ...
- xapian的使用
1.先来看一下Xapian的介绍: Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Inf ...
- iPhone应用提交流程:如何将App程序发布到App Store-转
对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时刻就是将应用程序提交到iTunes App Store.Xcode 4.2开发工具已经把App提交 ...