Итак, в основном я пытаюсь заменить все символы в сообщении, которое будет вводиться пользователем. Например, если пользователь вводит «собаку» и вводит кодовый номер «4», то новое сообщение будет «hsk». d, e, f, g, h, то же, что и o, p, q, r, s. Вот мой код:Заменить символ в сообщении
import java.util.*;
public class Lab6 {
public static void main(String[] args) {
int codeNum;
String msg;
Scanner in = new Scanner(System.in);
Scanner read = new Scanner(System.in);
System.out.println("Please enter a message");
msg = read.nextLine();
System.out.println("Please enter a value for coding");
codeNum = in.nextInt();
System.out.println("New message = " + getMsg(msg, codeNum));
}
public static String getMsg(String msg, int codeNum) {
char[] Upper_Case_Array = {'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'};
char[] Lower_Case_Array = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'l', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char[] digArray = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
char[] charArray = msg.toCharArray();
for (int i = 0; i <= charArray.length; i++) {
if (charArray[i] == ' ') {
continue;
}
for (int j = 0; j <= Upper_Case_Array.length; j++) {
if (charArray[i] == Upper_Case_Array[j]) {
charArray[i] = Upper_Case_Array[j + codeNum];
}
}
for (int h = 0; h <= Lower_Case_Array.length; h++) {
if (charArray[i] == Lower_Case_Array[h]) {
charArray[i] = Lower_Case_Array[h + codeNum];
}
}
for (int u = 0; u <= digArray.length; u++) {
if (charArray[i] == digArray[u]) {
charArray[i] = digArray[u + codeNum];
}
}
}
return new String(charArray);
}
}
Это попросить пользователя ввести сообщение и номер кода, но после того, что я получаю
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 26 at Lab6.getMsg(Lab6.java:39) at Lab6.main(Lab6.java:22)
Как мне это исправить?
Надеюсь, ваши проблемы домашние идут хорошо. Проблема в том, что вы поднимаетесь за верхний конец массива. Как настроить индекс [i], чтобы он не переполнял массив? (Что должен делать компьютер для «z»?) – Barett
спасибо, я думаю, я знаю, что делать сейчас =] – InvalidUserName