将顺序字符附加到字符串生成器
本文关键字:字符串 顺序 字符 | 更新日期: 2023-09-27 18:32:43
我正在尝试附加顺序字符:A, B, ... AA, AB, ...
开头为字符串生成器类型。 我遇到的问题是它将附加所有 ASCII 字符而不是双字符。 我的代码如下所示:
string prefix = null;
System.Text.StringBuilder text = new System.Text.StringBuilder();
for (j = 0; j < genList.Count; j++)
{
prefix = "." + Convert.ToChart(j + 65).ToString();
text.Append(prefix + genList[j]);
}
你真正想要的是输出一个以 26 为基数的整数,使用字母 A 到 Z 作为数字。所以 0 对应于 A,25 是 Z,26 是 AA,依此类推。
const string digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string ToBase26(int i)
{
StringBuilder sb = new StringBuilder();
do
{
sb.Append(digits[i % 26]);
i /= 26;
} while (i != 0);
// The digits are backwards. Reverse them.
return new string(sb.ToString.Reverse());
}
这不是最好的方法,但它会起作用。
要输出 A、B、C、...AA, AB, AC ...BA等:
for (int i = 0; i < Count; ++i)
{
Console.WriteLine(ToBase26(i));
}