当用户输入一个字母,然后键入要跳过的数字时,我遇到了问题。例如字母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'};
}
答案 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上进行了测试,输入xam
和4
提供了正确的输出beq
。