例如,123--124 a123--a124 aaa--aaa 12a3--12a4 00001--00002 a00001--a00002
解决方案 »
- 在listview中动态添加入大图标后怎么自动在他(刚添加的大图标)左边添加一个小按钮
- unix时间戳转换为北京时间
- 关于数据库实时更新提示
- 请高手请一段JAVA代码翻译为C#, MD5加密部分
- 关于C#Winform的 gridview 直接编辑后同步到数据库的问题
- 关于Devexpress的GridControl
- 如何实现点击MDI子窗口中的关闭按钮,让子窗口最小化?
- 截取文件路径问题.......
- 如何从零开始学习C#绘图
- treeview双击事件中,当单击节点前的"+"、"-"号时,总是出错,说是对象没有实例话。(在线等待)
- 在WF里面,不同衔接的不同内容在同一个区域的显示
- gridview绑定Dataset后无法显示网页了?
例如a00002 如果把00002转换成Int ,就变成2了吧?!
try
{
string b = a.Substring(a.Length - 1);
int c=int.Parse(b)+1;
string newA = a.Substring(0, a.Length - 1)+c+"";
MessageBox.Show(newA); }catch{
}
List<string> list = new List<string> { "123", "a123", "aaa", "12a3", "00001", "a00001", "12a9" };
foreach (string s in list)
{
string result = Regex.Replace(s, @"\d$", m => { return (Convert.ToInt32(m.Value) + 1).ToString(); });
Console.WriteLine(result);
}
Console.ReadLine();
/*
124
a124
aaa
12a4
00002
a00002
12a10
*/
正在写,就已经有人贴出来了。
需要改进一下:将string result = Regex.Replace(s, @"\d$"....这里的正则匹配模板改为"\d+$"
string str = "abcd123";
int num =Convert.ToInt32(str.Substring(str.Length - 1));
//自己加个if判断下是否为数字,是数字的,再转换
如果简单地用“\d$","12a99"得到的就是"12a910",应该是"12a100"
如果换成"\d+$", "0001"得到的就是"2"了,0被丢失了要继续完善正则匹配模板
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] array = { "123", "a123", "aaa", "12a3", "12a4", "00001", "a00001", "12a9", "12a99" };
array.ToList().ForEach(x => Console.WriteLine("{0}-{1}", x, AddOne(x)));
} static string AddOne(string source)
{
Regex regex = new Regex(@"(^\w+?|^\d+\w+?)(\d+$)");
Match match = regex.Match(source);
return match.Groups[1].Value == "" ?
source :
match.Groups[1].Value
+ (match.Groups[2].Value == "" ?
"" :
(Convert.ToInt32(match.Groups[2].Value) + 1).ToString().PadLeft(match.Groups[2].Length, '0'));
}
}
}123-124
a123-a124
aaa-aaa
12a3-12a4
12a4-12a5
00001-00002
a00001-a00002
12a9-12a10
12a99-12a100
Press any key to continue . . .
List<string> list = new List<string> { "123", "a123", "aaa", "12a3", "00001", "a00001", "12a99" };
foreach (string s in list)
{
string result = Regex.Replace(s, @"\d+$", m =>
{
string str = (Convert.ToInt32(m.Value) + 1).ToString();
return str.Length < m.Value.Length ? str.PadLeft(m.Value.Length, '0') : str;
});
Console.WriteLine(result);
}
Console.ReadLine();
/*
124
a124
aaa
12a4
00002
a00002
12a100*/