键入字母z时跳过字母不起作用

时间:2016-04-13 04:58:01

标签: java swing awt

当用户输入一个字母,然后键入要跳过的数字时,我遇到了问题。例如字母abc中的用户类型,然后键入要跳过的2个数字,输出是cdf,在我的程序中,这工作正常。但是当用户键入xyz时,则键入4号。我的程序不起作用。此外,所有具有z的字母都不会显示输出。例如xyz,那么要跳过的数字是1,输出将仅为yz。

public class Test2 {

private Scanner sc = new Scanner(System.in); 
private char characters[]=     {'a','b','c','d','e','f','g','h','i','j','k','l','m',
        'n','o','p','q','r','s','t','u','v','w','x','y','z'};

}

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找的是某种模数功能,在偏移越过字母z的情况下,字母“包裹”到字母表的开头。试试这段代码:

String alphabet = "abcdefghijklmnopqrstuvwxyz";
for (int f=0; f < text.length(); f++) {
    int index = alphabet.indexOf(text.charAt(f));
    System.out.println(alphabet.charAt((index + num) % 26));
}

此代码段在IntelliJ上进行了测试,输入xam4提供了正确的输出beq