我有一个程序应该接收一条消息,然后以所有可能的方式旋转字母(例如,a 变成 b,a 变成 c,a 变成 d...),然后将所有这些打印出来。因此,如果您在其中输入 hi,它应该会打印出 ij、jk、kl、lm 等。但是,它只会打印出其中一些旋转。这是我输入 a 得到的输出:a b d g k p v
这是应该旋转字母,然后显示它们的代码。在此之前,我有代码将消息中的所有字符放入表示字母的整数数组中(1 表示 a,2 表示 b...27 表示“”)。有人可以帮我纠正我犯的任何错误并学习下次如何不犯错吗?谢谢!
import java.util.*;
public class Decoder {
public static void main(String[] args) throws Exception {
int[] messageIntArray = new int[999999];
int[] messageWordIntArray = new int [1000000];
int letterCount = -1;
char messageChar;
String message = "";
boolean moreLines = true;
Scanner keyboard = new Scanner(System.in);
int r;
String rotatedMessage = "";
//[boolean running = true;
System.out.println("Enter message" + "\nMake sure you have a line at the end of your message with only a period");
while (moreLines) {
String line = keyboard.nextLine();
if (line.equals(".")) {
moreLines=false;
} else {
message = message + line + " ";
}
}
for (int q= 0; q<message.length(); q++){
messageChar= message.charAt(q);
if (messageChar == 'a' || messageChar == 'A' || messageChar == 'A') {
messageIntArray[q] = 1;
} else if (messageChar == 'b' || messageChar == 'B') {
messageIntArray[q] = 2;
} else if (messageChar == 'c' || messageChar == 'C') {
messageIntArray[q] = 3;
} else if (messageChar == 'd' || messageChar == 'D') {
messageIntArray[q] = 4;
} else if (messageChar == 'e' || messageChar == 'E') {
messageIntArray[q] = 5;
} else if (messageChar == 'f' || messageChar == 'F') {
messageIntArray[q] = 6;
} else if (messageChar == 'g' || messageChar == 'G') {
messageIntArray[q] = 7;
} else if (messageChar == 'h' || messageChar == 'H') {
messageIntArray[q] = 8;
} else if (messageChar == 'i' || messageChar == 'I') {
messageIntArray[q] = 9;
} else if (messageChar == 'j' || messageChar == 'J') {
messageIntArray[q] = 10;
} else if (messageChar == 'k' || messageChar == 'K') {
messageIntArray[q] = 11;
} else if (messageChar == 'l' || messageChar == 'L') {
messageIntArray[q] = 12;
} else if (messageChar == 'm' || messageChar == 'M') {
messageIntArray[q] = 13;
} else if (messageChar == 'n' || messageChar == 'N') {
messageIntArray[q] = 14;
} else if (messageChar == 'o' || messageChar == 'O') {
messageIntArray[q] = 15;
} else if (messageChar == 'p' || messageChar == 'P') {
messageIntArray[q] = 16;
} else if (messageChar == 'q' || messageChar == 'Q') {
messageIntArray[q] = 17;
} else if (messageChar == 'r' || messageChar == 'R') {
messageIntArray[q] = 18;
} else if (messageChar == 's' || messageChar == 'S') {
messageIntArray[q] = 19;
} else if (messageChar == 't' || messageChar == 'T') {
messageIntArray[q] = 20;
} else if (messageChar == 'u' || messageChar == 'U') {
messageIntArray[q] = 21;
} else if (messageChar == 'v' || messageChar == 'V') {
messageIntArray[q] = 22;
} else if (messageChar == 'w' || messageChar == 'W') {
messageIntArray[q] = 23;
} else if (messageChar == 'x' || messageChar == 'X') {
messageIntArray[q] = 24;
} else if (messageChar == 'y' || messageChar == 'Y') {
messageIntArray[q] = 25;
} else if (messageChar == 'z' || messageChar == 'Z') {
messageIntArray[q] = 26;
}
else if (messageChar == ' ') {
messageIntArray[q] = 27;
}
letterCount++;
int letter = messageIntArray[q];
messageWordIntArray[letterCount] = letter;
}
for (int t = 0; t<26; t++) {
for (r=0; r < letterCount; r++){
if (messageWordIntArray[r] <=25 ) {
messageWordIntArray[r] = messageWordIntArray[r] + t;
} else if (messageWordIntArray[r] == 26 && t>0) {
messageWordIntArray[r] = 0;
messageWordIntArray[r] = messageWordIntArray[r] + t;
}
if (messageWordIntArray[r] == 1) {
rotatedMessage = rotatedMessage + "a";
} else if (messageWordIntArray[r] == 2) {
rotatedMessage = rotatedMessage + "b";
} else if (messageWordIntArray[r] == 3) {
rotatedMessage = rotatedMessage + "c";
} else if (messageWordIntArray[r] == 4) {
rotatedMessage = rotatedMessage + "d";
} else if (messageWordIntArray[r] == 5) {
rotatedMessage = rotatedMessage + "e";
} else if (messageWordIntArray[r] == 6) {
rotatedMessage = rotatedMessage + "f";
} else if (messageWordIntArray[r] == 7) {
rotatedMessage = rotatedMessage + "g";
} else if (messageWordIntArray[r] == 8) {
rotatedMessage = rotatedMessage + "h";
} else if (messageWordIntArray[r] == 9) {
rotatedMessage = rotatedMessage + "i";
} else if (messageWordIntArray[r] == 10) {
rotatedMessage = rotatedMessage + "j";
} else if (messageWordIntArray[r] == 11) {
rotatedMessage = rotatedMessage + "k";
} else if (messageWordIntArray[r] == 12) {
rotatedMessage = rotatedMessage + "l";
} else if (messageWordIntArray[r] == 13) {
rotatedMessage = rotatedMessage + "m";
} else if (messageWordIntArray[r] == 14) {
rotatedMessage = rotatedMessage + "n";
} else if (messageWordIntArray[r] == 15) {
rotatedMessage = rotatedMessage + "o";
} else if (messageWordIntArray[r] == 16) {
rotatedMessage = rotatedMessage + "p";
} else if (messageWordIntArray[r] == 17) {
rotatedMessage = rotatedMessage + "q";
} else if (messageWordIntArray[r] == 18) {
rotatedMessage = rotatedMessage + "r";
} else if (messageWordIntArray[r] == 19) {
rotatedMessage = rotatedMessage + "s";
} else if (messageWordIntArray[r] == 20) {
rotatedMessage = rotatedMessage + "t";
} else if (messageWordIntArray[r] == 21) {
rotatedMessage = rotatedMessage + "u";
} else if (messageWordIntArray[r] == 22) {
rotatedMessage = rotatedMessage + "v";
} else if (messageWordIntArray[r] == 23) {
rotatedMessage = rotatedMessage + "w";
} else if (messageWordIntArray[r] == 24) {
rotatedMessage = rotatedMessage + "x";
} else if (messageWordIntArray[r] == 25) {
rotatedMessage = rotatedMessage + "y";
} else if (messageWordIntArray[r] == 26) {
rotatedMessage = rotatedMessage + "z";
} else if (messageWordIntArray[r] == 27) {
rotatedMessage = rotatedMessage + " ";
}
}
System.out.print(rotatedMessage+"\n");
rotatedMessage="";
}
}
}