import java.util.Scanner;
public class CaesarCipher {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
System.out.println("Enter the encrypted text :");
String cryptedtext = input.nextLine();
cryptedtext = cryptedtext.toLowerCase();
String[] array = new String[cryptedtext.length()];
for (int i = 97; i < 123; i++)
{
int mostFrequent = 0;
for (int j = 0; j < cryptedtext.length(); j++)
{
if (cryptedtext.charAt(j) == i){
++mostFrequent;
}
}
System.out.println((char) i + " is showing " + mostFrequent + " times ");
}
}
}
Я пытаюсь сломать шифр, и я должен посчитать, сколько раз одна буква повторяет его сам в слове или предложении. Мне нужно только превратить слово/предложение крипты в фактическое предложение на английском языке, и я действительно не знаю, как это сделать. Я должен написать что-то, что шифрует и подсчитывает повторяющиеся письма (до сих пор я это сделал), но я действительно не знаю, как его расшифровать.Breaking The Caesar Cipher
Вы не можете без ** alot ** больше кода. Как вы программируете знать, что конкретная попытка приводит к «фактическому предложению на английском языке»? Вам нужна библиотека [NLP] (https://en.wikipedia.org/wiki/Natural_language_processing). В противном случае вам не лучше, чем делать это на ручке и бумаге ... –
ну, я действительно не знаю. Расшифровать сложнее, я думаю, и у меня возникают проблемы –
Извините, но вы ошибаетесь. Подсчет символов - одна строка кода. Попытка сдвига - это, возможно, еще одна пара. Найти какой-то способ определить, является ли результирующий 'String' английским предложением, по крайней мере, ** все ** слова на английском языке и какой-то NLP, чтобы выяснить, есть ли у вас тарабарщина или предложение ... –