Java :: Aufgabe #34 :: Lösung #6
6 Lösungen

#34
Mit Caesar Chiffre ent- und verschlüsseln
Anfänger - Java
von Dome
- 03.01.2013 um 01:30 Uhr
Schreiben Sie ein Programm, indem Sie mit Hilfe der Caesar Chiffre einen beliebigen Text ent- und verschlüsseln können. Zuvor muss der Text und die Anzahl der Verschiebung angegeben werden. Groß- und Kleinschreibung muss nicht beachtet werden.
Konsolenausgabe:
Geben Sie den Text ein: Beispielwort
Um wie viele Stellen soll verschoben werden: 1
Ergebnis: Cfjtqjfmxpsu
#6

von kollar (340 Punkte)
- 10.12.2019 um 09:50 Uhr

import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class CeasarChiffre { public static void main(String args[]) { FrCeasar frCeasar = new FrCeasar("Ceasar Ziffer"); } } class FrCeasar extends JFrame implements ActionListener { JPanel pEingabe = new JPanel(); JLabel lbEingabe = new JLabel("Geben Sie den Text ein: "); JTextField tfEingabe = new JTextField(20); JPanel pZahl = new JPanel(); JLabel lbZahl = new JLabel("Geben Sie eine Zahl ein: "); JTextField tfZahl = new JTextField(20); JPanel pButton = new JPanel(); JButton bButton = new JButton("Verschlüsseln"); JPanel pAusgabe = new JPanel(); JLabel lbAusgabe = new JLabel("Ergebnis: "); JTextField tfAusgabe = new JTextField(20); FrCeasar(String titel) { super(titel); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(440, 300); setLocation(1000, 300); setLayout(new FlowLayout(FlowLayout.RIGHT, 20, 20)); tfAusgabe.setEditable(false); pEingabe.add(lbEingabe); pEingabe.add(tfEingabe); pZahl.add(lbZahl); pZahl.add(tfZahl); pButton.add(bButton); pAusgabe.add(lbAusgabe); pAusgabe.add(tfAusgabe); add(pEingabe); add(pZahl); add(pButton); add(pAusgabe); bButton.addActionListener(this); tfEingabe.addActionListener(this); tfZahl.addActionListener(this); } public void berechneCeasar(String stEingabetext, String stEingabeZahl) { try { int eingabeZahl = Integer.parseInt(stEingabeZahl); char[] arrayABC = new char[26]; char[] arrayabc = new char[26]; StringBuilder sbAusgabe = new StringBuilder(); char tempZiffer; char addZiffer; for (int i = 0; i <= 25; i++) { arrayABC[i] = (char) (i + 65); arrayabc[i] = (char) (i + 97); } for (int i = 0; i < stEingabetext.length(); i++) { tempZiffer = stEingabetext.charAt(i); for (int j = 0; j < arrayABC.length; j++) { if (arrayABC[j] == tempZiffer) { if (eingabeZahl + j > 25) { addZiffer = arrayABC[eingabeZahl + j - 26]; } else { addZiffer = arrayABC[eingabeZahl + j]; } sbAusgabe.append(addZiffer); } } for (int j = 0; j < arrayabc.length; j++) { if (arrayabc[j] == tempZiffer) { if (eingabeZahl + j > 25) { addZiffer = arrayabc[eingabeZahl + j - 26]; } else { addZiffer = arrayabc[eingabeZahl + j]; } sbAusgabe.append(addZiffer); } } if (tempZiffer == ' ') { sbAusgabe.append(' '); } } tfAusgabe.setText(sbAusgabe.toString()); } catch (NumberFormatException e) { tfAusgabe.setText("Bitte Ganzzahl eingeben!"); } } @Override public void actionPerformed(ActionEvent evt) { berechneCeasar(tfEingabe.getText(), tfZahl.getText()); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1