Wieso nur erster Buchstabe bei Caesar-Entschlüsselung?

Choonx

Neues Mitglied
Hallo Java-Freunde =)

Als Vorgeschichte zu meinem Problem kann ich euch sagen, dass wir von der Schule aus die Aufgabe erhalten haben, mit dem Programm Eclipse zuerst einen Text von einem textField in ein neues textPane zu übertragen. Dabei sollen auch die Leerzeichen entfernt, die Anzahl der geschriebenen Buchstaben (mit Leerzeichen sowie ohne Leerzeichen) ausgeben werden.
Als nächste Aufgabe sollten wir den geschriebenen Text mit Hilfe der Ascii-Tabelle in Großbuchstaben umwandeln und via Caesar-Verschlüsselung verschlüsseln. Der verschlüsselten Text sollte anschließend in eine neue Textdatei geschrieben und abgespeichert werden.

Soweit zur Vorgeschichte :D
Als letzte Aufgabe war/soll es nun erforderlich sein, den verschüsselten Text aus der Textdatei auszulesen und in einem
zweiten textPane_1 darzustellen. Soweit gut, ist alles erledigt. Text wird angezeigt und alles gut ;)

Nun tritt für mich aber folgendes Problem auf, wenn ich den Text aus dem textPane_1 einlese, versuche ihn zu entschlüssen und ihn in einem dritten textPane_2 darzustellen:

Unbenannt.JPG

Zu sehen sind momentan das textPane_1 und das textPane_2. Im textPane_1 wird noch nach Aufgabe der verschlüsselte Text ausgegeben und im anderen textPane wird nur das h ausgegeben :/
Da stellt sich bei mir jetzt die Frage:
Wieso wird nur das h ausgegeben? Und wieso werden die anderen Buchstaben nicht wieder mit entschlüsselt?! Der komplette Satz wird doch auch verschlüsselt :noe::bahnhof:


hier mal mein Quellcode (vielleicht hilft euch der ja weiter meine Schritte nachzuvollziehen):
Code für Verschlüsselung:
Java:
JButton btnVerschlsseln = new JButton("Verschluesseln");
		btnVerschlsseln.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String text = txtHalloWelt.getText();
				String text1 = txtHalloWelt.getText();
				text = text.toUpperCase();
				// text = text.toLowerCase();
				text = text.replaceAll(" ", "");
				int laengemitleer = text1.length();
				int laenge = text.length();
				int car = 0;
				int i;
				String out = "";
				for (i = 0; i < laenge; i++)
					{
						car = text.charAt(i) + 3;
						if (car > 90)
						{
							car-=26; //car = car - 26;	
						}
						out += (char) car;
					}
				
				textPane.setText(laenge + "\n" + laengemitleer + "\n" + text +  "\n" + out);

Code für das Schreiben in eine Textdatei:
Java:
try
				{
					File file = new File("C:\\Users\\User\\Desktop\\Code.txt");
					FileWriter fw = new FileWriter(file);
					
					fw.write(out);
					fw.flush();
					fw.close(); 
				}
				catch( IOException e )
				{
					e.printStackTrace();
				}	
			}

Code zum Auslesen der Textdatei:
Java:
try 
				{
					BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\User\\Desktop\\Code.txt"));
					while ((out = in.readLine()) != null) 
					{
						textPane_1.setText(out);
					}
				}
				catch (IOException e)
				{
					e.printStackTrace();
				}
			}


Mein Code für das Entschlüsseln der Caesar-Methode (welcher mir noch Schwierigkeiten bereitet und nur das h ausgibt):
Java:
btnEntschluesseln.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String text = textPane_1.getText();
				String out = "";
				text = text.toLowerCase();
				int laenge = text.length();
				int car = 0;
				int i;
				
				for (i = 0; i > laenge; i--);
				{
					car = text.charAt(i) - 3;
					if (car < 96)
					{
					car -= 26;
					}	
					out += (char) car;
				}
				textPane_2.setText(out);
			}
		});


Ich hoffe, dass ihr mir da helfen könnt =)

Mit freundlichen Grüßen
Choonx


ps: das gesamte Fenster sieht dann folgendermaßen aus
Unbenannt2.JPG
(1 Reihe => textField
2 Reihe => Buttons zum Action-ausführen
3 reihe => 1. textPane um Text zu verschlüsseln
4 Reihe => 2. textPane_1 um den verschlüsselten Text aus der Textdatei auszulesen
5 Reihe => verschlüsselter Text aus textPane_1 soll entschlüsselt in textPane_2 ausgegeben werden)
 

DeeM

Neues Mitglied
Java:
for (i = 0; i > laenge; i--);
				{
					car = text.charAt(i) - 3;
					if (car < 96)
					{
					car -= 26;
					}	
					out += (char) car;
				}
				textPane_2.setText(out);

Erkläre uns doch mal den Sinn der Schleife. Ich denke das i nicht 0 sein sollte oder ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J JavaFX CSS einbinden - Wieso will das einfach nicht!!! AWT, Swing, JavaFX & SWT 1
LexeB4F setValueAT geht nicht... wieso? AWT, Swing, JavaFX & SWT 14
Z JComponent's requestFocus() - Wieso nicht immer anwendbar? AWT, Swing, JavaFX & SWT 1
A Swing JTable wird nicht über zurückegebene Referenz geaddet.Wieso nicht? AWT, Swing, JavaFX & SWT 5
K LayoutManager Wieso verschwinden Elemente? AWT, Swing, JavaFX & SWT 20
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
propra Wieso wird paintComponent() beim Start 2 malausgeführt? AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Wieso wird das Bild nicht angezeigt ? AWT, Swing, JavaFX & SWT 4
T wieso leere Oberfläche? AWT, Swing, JavaFX & SWT 5
G Swing Wieso braucht man nach setVisible mal ein revalidate und mal nicht? AWT, Swing, JavaFX & SWT 8
C Wieso funktionert der CellRenderer nicht? AWT, Swing, JavaFX & SWT 2
L Wieso werden die Icons nicht dargestellt? AWT, Swing, JavaFX & SWT 2
W Wieso SerialVersionUID bei Swing-Komponenten AWT, Swing, JavaFX & SWT 5
N Freiraum in der GUI - Wieso? AWT, Swing, JavaFX & SWT 6
S Wieso Fenster im EDT sichtbar machen? AWT, Swing, JavaFX & SWT 43
M Wieso geht das nicht! AWT, Swing, JavaFX & SWT 3
S animation Flackern trotz doppelpufferung wieso? AWT, Swing, JavaFX & SWT 2
G Wieso wird meine Scrollbar nicht angezeigt? AWT, Swing, JavaFX & SWT 3
K JTable - wieso funktioniert der Autoscroll nicht? AWT, Swing, JavaFX & SWT 5
Paule JFrame bleibt leer, wieso? AWT, Swing, JavaFX & SWT 2
S Wieso werden die Bilder nicht angezeigt? AWT, Swing, JavaFX & SWT 4
G Progressbar aktualisiert sich nicht (vernünftig). WIESO? AWT, Swing, JavaFX & SWT 2
M JTextField gesperrt nach erster Benutzung... AWT, Swing, JavaFX & SWT 4
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
Z JLIST / Model erster EINTRAG AWT, Swing, JavaFX & SWT 11
E LayoutManager Erster Versuch mit Cardlayout AWT, Swing, JavaFX & SWT 2
S Swing JTable: in erster Spalte Image darstellen AWT, Swing, JavaFX & SWT 30
F Ignoriere Mausklick falls erster Klick von Doppelklick . AWT, Swing, JavaFX & SWT 4
A JComboBox erster Eintrag nicht auswählbar AWT, Swing, JavaFX & SWT 4
M Erster Eintrag der ComboBox reagiert nicht AWT, Swing, JavaFX & SWT 12
S TableTree - Tree nicht in erster Spalte AWT, Swing, JavaFX & SWT 5
F JTree - Schriftfarbe der Elemente in erster Ebene ändern AWT, Swing, JavaFX & SWT 8
G JComboBox mit leerzeichen an erster stelle AWT, Swing, JavaFX & SWT 13
1 Textfield: jede Buchstabe ein Bild AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben