我不久前开始学习编程,现在需要一个方法来生成一个包含字符的数组,该字符是在先前字符之后出现的。它应该从0处开始以'A'开头,然后在'1'处是'B'等等。困难的部分是使其在'Z'之后变成'AA'。
我的解决方案:
public static String[] charArray(int length)
{
String[] res = new String[length];
for(int i = 0; i < length; i++)
{
String name = "";
int colNumber = i;
while(colNumber > 0)
{
char c = (char) ('A' + (colNumber % 26));
name = c + name;
colNumber = colNumber / 26;
}
res[i] = name;
}
return res;
}
这对于字母表前26个字母有效,但它会产生“...Y,Z,BA,BB,BC...”而不是“...Y,Z,AA,AB,AC...”。出了什么问题?或者有更有效或更简单的方法来做到这一点吗?谢谢!