gpt4 book ai didi

java - 像电子表格一样在 Java 中递增超过 'Z' 的字符

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:28 27 4
gpt4 key购买 nike

我并没有在很久以前开始编程,目前我需要一种方法来生成一个数组,其中包含一个位于前一个字符之后的字符。它应该以 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 ……”

怎么了?或者有没有更有效或更简单的方法来做到这一点?

提前致谢!

最佳答案

您的开局不错。这个例子没有运行 while 循环,而是根据数字 % 26 计算 C 的值

然后将字母添加(连接)到数组中的值的位置:(index/26) - 1,以确保它跟上随时间的变化。

第一次迭代时,数组 A B C 等中的每个槽中只有一个字母。

一旦你遍历了字母表,你就会有一个向后看的索引,并将当前字母添加到该值。

你最终会进入 AAA AAB AAC 等甚至更多。

    public static String[] colArray(int length) {   

String[] result = new String[length];

String colName = "";
for(int i = 0; i < length; i++) {

char c = (char)('A' + (i % 26));
colName = c + "";
if(i > 25){
colName = result[(i / 26) - 1] + "" + c;
}
result[i] = colName;
}
return result;
}

关于java - 像电子表格一样在 Java 中递增超过 'Z' 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com