Изображение пабов здесь Первый столбец - это мой Pub.out
Second - это ожидаемый Pub.out
Я не знаю, что делать, я уже пытаюсь игнорировать не Char, но не решил.
Мне нужно имитировать Caesar Cypher.
Я пытался поменять без Chars #, но тоже не решил. /> Это алгоритм: < /p>
import java.util.Scanner;
public class Cypher {
public static String cypher(String word, int key) {
char[] alpha = {
'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[] alphaUpper = {
'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'
};
StringBuilder result = new StringBuilder();
for (int i = 0; i < word.length(); i++) {
char actual_char = word.charAt(i);
boolean found_letter = false;
for (int j = 0; j < alphaUpper.length; j++) {
if (alphaUpper[j] == actual_char) {
int new_index = (j + key) % alphaUpper.length;
result.append(alphaUpper[new_index]);
found_letter = true;
break;
}
}
if (!found_letter) {
for (int j = 0; j < alpha.length; j++) {
if (alpha[j] == actual_char) {
int new_index = (j + key) % alpha.length;
result.append(alpha[new_index]);
found_letter = true;
break;
}
}
}
if (!found_letter) {
result.append(actual_char);
}
}
return result.toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int key = 3;
String entry;
while (true) {
entry = scanner.nextLine();
if (entry.equals("FIM")) {
break;
}
String word_cypher = cypher(entry, key);
System.out.println(word_cypher);
}
scanner.close();
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ed-pub-out