首先按照您的需求,个人觉得从逻辑上讲,您这里到9999了,自增1以后应该是变为a000,然后自增1才到a001。
然后您这个需求有些不明确:
1、是不是只有最左边的一位能变字母,其他后面三位最大只能到9?
2、最左边的一位最大能到多少?F还是Z?有无大小写区分(例z999 -> A000)?
3、假如最左边一位最大值是F,假如到F999,您希望接下来是什么样的?是Fa00还是停止计数?
这个逻辑上的算法不难,只要明确您的需求,我可以给您提供源码
既然是字符串,那就加判断,如果是9999,将其改为a001;
或者判断其长度,如果str.length()>5则将其改为a001;
纯手打。。。
string myNumber;
while(我想要的条件)
{
string str=" ";
int i=1;
//对i自增操作
if(i<=9999)
{
i++;
}
lese
{
//str为空格
if(Convert.ToInt32(Encoding.ASCII.GetBytes(str)[0])==32)
{
str="a";
i=1;
}
//str不是空格
else
{
//str的下一位字母
str=Convert.ToChar(Convert.ToInt32(Encoding.ASCII.GetBytes(str)[0])+1).ToString();
i=1;
}
}
if(符合我的条件)
{
string number="";
switch(i.ToString().Length)
{
case 1:
number="000"+i.ToString();
break;
case2:
number="00"+i.ToString();
break;
case3:
number="0"+i.ToString();
break;
case4:
number=i.ToString();
break;
}
//myNumber就是最终的数据
myNumber=str+number;
break;
}
}
我想问下19999如何表示?