Ich hatte einige Probleme mit dieser ursprünglich, aber fand eine andere Hilfe hier. Jetzt scheint ich ein Problem mit einem Eingabefehler zu haben. Ich glaube, ich habe die korrekte Formatierung für die Eingabe.Caesar Shift Cipher, Eingabe Ausnahme Fehler
import java.util.Scanner;
public class CaesarShift
{
//initialize private string for the alphabet
private final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
//public encryption code
public String encryptionMethod(String normText, int caesarShift)
{
normText = normText.toLowerCase();
String cipherText = "";
for (int a = 0; a < normText.length(); a++)
{
int charP = ALPHABET.indexOf(normText.charAt(a));
int shiftValue = (caesarShift + charP) % 26;
char replaceValue = this.ALPHABET.charAt(shiftValue);
cipherText += replaceValue;
}
return cipherText;
}
public String decryptionMethod(String cipherText,int caesarShift)
{
cipherText = cipherText.toLowerCase();
String normText = "";
for (int a = 0; a < cipherText.length(); a++)
{
int charP = this.ALPHABET.indexOf(cipherText.charAt(a));
int keyValue = (charP - caesarShift) % 26;
if(keyValue < 0)
{
keyValue = this.ALPHABET.length() + keyValue;
}
char replaceValue = this.ALPHABET.charAt(keyValue);
normText += replaceValue;
}
return normText;
}
}
Dann habe ich die Tester Methode es, wo ich die aktuelle Ausgabe des Eingangsausnahmefehler habe
import java.util.Scanner;
public class CaesarShiftTester
{
public static void main(String args[])
{
//import of the scanner method to ask the user for the input they would like
Scanner in = new Scanner(System.in);
System.out.println("What is the text you would like to do something with?");
String normText = in.next();
System.out.println("What is the Caesar Shift Value?");
int caesarShift = in.nextInt();
//new declaration of the CaesarShift class to report back to easily
CaesarShift shift = new CaesarShift();
//decalre the need properties for the encryption
String cipherText = shift.encryptionMethod(normText, caesarShift);
System.out.println("Your normal text is: " + normText);
System.out.println("Your text after encryption is: " + cipherText);
String cnormText = shift.decryptionMethod(cipherText, caesarShift);
System.out.println("Your encrypted text is: " + cipherText);
System.out.println("Your decrypte text is: " + cnormText);
}
}
Sorry für die etwas chaotisch Code, ich normalerweise aufzuräumen wenn ein Programm fertig ist und funktioniert.
Willkommen bei Stack-Überlauf. Es ist eine gute Idee, den Code vor dem Posten einer Frage aufzuräumen, idealerweise auf einen [mcve] zu reduzieren. Im Moment wissen wir, dass es einen "Ausnahmefehler bei der Eingabe" gibt, aber nicht wo oder was die Nachricht ist, etc. Ich würde Sie dringend bitten, den Code auf ein minimales Beispiel zu reduzieren, den Fehler in die Frage aufzunehmen und was Sie versucht haben, um es zu diagnostizieren. Sie können feststellen, dass Sie dabei das Problem lösen ... –