达到结束时重置字符java

时间:2014-12-05 10:28:53

标签: java

以下代码为基础:

for (int i = 0; i < 26; i++)
{   
    alphabet[i] = (char) ('A'+  i );
}

我的问题是: -

如果&#39; A&#39;对&#39; X&#39;的更改我们如何从一开始就实现字母表重置?

例如XYZABC

2 个答案:

答案 0 :(得分:2)

您只需插入if语句:

char startChar = 'X';

for (int i = 0; i < 26; i++) {
    char ch = (char) (startChar + i);
    if (ch > 'Z') {
        ch -= 26;
    }
    alphabet[i] = ch;
}

答案 1 :(得分:2)

每当你有一些东西需要&#34;环绕&#34;时,看一下模数运算符。基本的想法是:你不想从i = 0到26计数,但是从i = 23到49,但只添加模26值。

您可以直接将此偏移量集成到循环中,而不是开始计数为23(可能是'X' - 'A'种类型):

for (int i = 0; i < 26; i++)
{   
    alphabet[i] = (char) ('A' + ('X' - 'A' +  i) % 26);
}

'A'是基础,'X' - 'A'构建,它会偏移您添加i的位置,然后取26的模数(因为字母表有26个字符),然后添加到你的&#39; A&#39;试。