一个串内递增一个号码(C#) [英] Increment a number within a string (C#)

查看:115
本文介绍了一个串内递增一个号码(C#)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数字结尾的字符串,破折号( - )之后。我想创建与1很简单增加了许多相同的字符串,但我不知道是否有这个更好的办法? !谢谢



 字符串oldString =BA-0001-3; 
INT lastIndex的= oldString.LastIndexOf( - );
串oldNumber = oldString.SubString(lastIndex的+ 1);
串oldPartialString = oldString.SubString(0,lastIndex的);
INT newNumber = Convert.ToInt32(oldNumber)+ 1;

串newString = oldPartialString + newNumber.ToString();


解决方案

我可能会用我的朋友 string.Split

 字符串oldString =BA-0001-3; 
的String [] =零件oldString.Split(' - ');
份〔parts.Length-1] =(Convert.ToInt32(份〔parts.Length-1)+ 1)的ToString();
串newString =的string.join( - ,份);

一个小的调整,也许会让它更快(通过访问 parts.Length 并减去1只有一次 - 没有配置文件,因此这纯粹是猜测,这可能是一个边际差异),但首先更健壮(通过使用 int.TryParse ):

 字符串oldString =BA-0001-3; 
的String [] =零件oldString.Split(' - ');
INT编号;
INT lastIndex的= parts.Length-1;
部分[lastIndex的] =(int.TryParse(零件[lastIndex的],出数)+数字:1?)的ToString();
串newString =的string.join( - ,份);


I have a string with a number at the end, after a dash ("-"). I'd like to create that same string with that number incremented by 1. Pretty simple, but I'm wondering if there's a better approach to this? Thanks!

string oldString = "BA-0001-3";
int lastIndex = oldString.LastIndexOf("-");
string oldNumber = oldString.SubString(lastIndex + 1);
string oldPartialString = oldString.SubString(0, lastIndex);
int newNumber = Convert.ToInt32(oldNumber) + 1;

string newString = oldPartialString + newNumber.ToString();

解决方案

I would probably use my friend string.Split:

string oldString = "BA-0001-3";
string[] parts = oldString.Split('-');
parts[parts.Length-1] = (Convert.ToInt32(parts[parts.Length-1])+1).ToString();
string newString = string.Join("-", parts);

A small tweak that will perhaps make it quicker (by accessing parts.Length and subtracting 1 only once - didn't profile so it's purely a guess, and it is likely a marginal difference anyway), but above all more robust (by using int.TryParse):

string oldString = "BA-0001-3";
string[] parts = oldString.Split('-');
int number;
int lastIndex = parts.Length-1;
parts[lastIndex] = (int.TryParse(parts[lastIndex], out number) ? ++number : 1).ToString();
string newString = string.Join("-", parts);

这篇关于一个串内递增一个号码(C#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆