C#如何实现数字自增,满位转成字母(9999-->a001)?
展开全部
首先按照您的需求,个人觉得从逻辑上讲,您这里到9999了,自增1以后应该是变为a000,然后自增1才到a001。
然后您这个需求有些不明确:
1、是不是只有最左边的一位能变字母,其他后面三位最大只能到9?
2、最左边的一位最大能到多少?F还是Z?有无大小写区分(例z999 -> A000)?
3、假如最左边一位最大值是F,假如到F999,您希望接下来是什么样的?是Fa00还是停止计数?
这个逻辑上的算法不难,只要明确您的需求,我可以给您提供源码
然后您这个需求有些不明确:
1、是不是只有最左边的一位能变字母,其他后面三位最大只能到9?
2、最左边的一位最大能到多少?F还是Z?有无大小写区分(例z999 -> A000)?
3、假如最左边一位最大值是F,假如到F999,您希望接下来是什么样的?是Fa00还是停止计数?
这个逻辑上的算法不难,只要明确您的需求,我可以给您提供源码
更多追问追答
追问
简单的我写好了 。 如果是这种: 9999 --> a000 ---> z999 --> A000 --> Z999 --> aa00 --> az99 --> aA00 --> aZ99 --> ba00 --> .... --> Za00 --> Za99 --> .... ZZ99 ... --> ZZZZ , 你有什么简便的写法吗?
展开全部
既然是字符串,那就加判断,如果是9999,将其改为a001;
或者判断其长度,如果str.length()>5则将其改为a001;
或者判断其长度,如果str.length()>5则将其改为a001;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-21
展开全部
纯手打。。。
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;
}
}
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如何表示?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询