0
我写下面的代码来生成我的8位数字符号,增量应该从左到右发生。如何在c中生成字母数字序列号
想我开始编号ABC00001下一个增量数量将ABC00002
数量将增加多达9,9后,将变成。 如:ABC00009 - > ABC00000A - > ABC00000B - > ... - > ABC00000Z
Z后,将倒数第二位数目变化为ABC0000A1 - > ABC0000A2 ...
public static string GeneratedNextevcPrimakryKey()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string str = string.Empty;
var maxNumber = "ONC0BJKZ";
string splitnumber = maxNumber.Substring(3, 5);
char[] temp = splitnumber.ToCharArray();
//find last index number/character
for (int i = splitnumber.Length - 1; i >= 0; i--)
{
if (char.IsNumber(splitnumber[i]))
{
int fifthvalue = Convert.ToInt32(splitnumber[i].ToString());
//increment 5th digit character
if (fifthvalue == 9)
{
temp[i] = 'A';
break;
}
else
{
fifthvalue = fifthvalue + 1;
string f = Convert.ToString(fifthvalue);
temp[i] = Convert.ToChar(f);
//sb.Append(fifthvalue);
break;
}
}
else
{
char letter = splitnumber[i];
char nextChar = new char();
if (letter == 'z')
{
string strvalue = Convert.ToString(1);
temp[i] = Convert.ToChar(strvalue);
}
else if (letter == 'Z')
{
//last digit character
string strvalue = Convert.ToString(1);
temp[i] = Convert.ToChar(strvalue);
str = new string(temp);
break;
}
else
nextChar = (char)(((int)letter) + 1);
temp[i] = nextChar;
str = new string(temp);
break;
}
}
return str;
}
也许谁upvoted可以[编辑]一问到这个? – Will
这里有什么问题吗?您是否遇到错误或意外结果?您是否在寻求有关如何使其更好/更快的反馈? –
是的,我的输出没有正确生成。 –