0
私は8桁の文字番号を生成するために以下のコードを書きましたが、左から右にインクリメントする必要があります。cで英数字シーケンス番号を生成する方法
私の開始番号は次のインクリメント数がABC00002
数になりますABC00001であると仮定は9まで増加しますと9の後にそれがに変わります。 例:ABC00009 - > ABC00000A - > ABC00000B - > ... - >それはABC0000A1として最後の二桁の数字を変更しますZ後ABC00000Z
- > 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;
}
を実装しようとすることができますか? – Will
ここであなたの質問は何ですか?エラーや意図しない結果に遭遇しましたか?これをより良く/より速くする方法のフィードバックを求めていますか? –
はい、出力が正しく生成されません。 –