java字母循环重置为开头

时间:2017-11-02 07:56:30

标签: java

我想创建一个循环,当你添加一个数字时,它会为你提供字母表中该位置的等效字符。例如,a = 0,b = 1等。 我已经创建了它并且它可以工作,但我遇到的问题是当它达到26时,我希望它返回并继续循环。例如,25是z,所以27应该是b。

代码:

char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toLowerCase().toCharArray();
    if (i < 0) 
    {
        return null;
    }
    if(i > 25)
    {
        i = 0;
    }           
    return Character.toString(alphabet[i]); //converts character to String and returns the character
}   

3 个答案:

答案 0 :(得分:3)

您可以在i上使用模数操作。

char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toLowerCase().toCharArray();
int i =30;
System.out.println(alphabet[i % alphabet.length]);

答案 1 :(得分:1)

根本不需要任何数组或循环。就这样做:

return (char)('a' + (i % 26));

答案 2 :(得分:1)

尝试使用模数运算符作为索引。例如,

char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toLowerCase().toCharArray();
if (i < 0) return;
i = i % 26;
return Character.toString(alphabet[i]);

或者

char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toLowerCase().toCharArray();
if (i > 0)
    return Character.toString(alphabet[i % 26]);
else
    return;