Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > Brett vorm Kopf - brauch mal Eure Hilfe!
Antwort
 
Themen-Optionen
Alt 13.01.2006, 19:59   Nach oben    #1
Neuer Benutzer
 
Registriert seit: 13.01.2006
Beiträge: 4
Standard Brett vorm Kopf - brauch mal Eure Hilfe!

Muss für meinen Programmierung-Grundkurs folgende Aufgabe erledigen:

Texte kodieren
Lernziel:
Zeichen aus Strings auslesen und in zweidimensionalen Reihungen positionieren.

Programmieren Sie ein Verschlüsselungsverfahren zur Kodierung von Texten. Sender und Empfänger vereinbaren einen Schlüssel der geheim bleiben soll und nicht mit übertragen wird. Dieser Schlüssel legt die Anzahl von Zeilen und Spalten einer zweidimensionalen Reihung fest.
Für Ihre Aufgabe sei der Schlüssel (7, 4), Sender und Empfänger benutzen also eine Reihung mit 7 Zeilen und 4 Spalten.
Der Sender schreibt seinen Klartext unter Auslassung der Leerzeichen zeilenweise in eine solche Reihung. Ist die Reihung nicht voll, so wird sie durch willkürliche Zeichen aufgefüllt.
Beispiel:
Klartext:
Loesung Einsendeaufgabe 16-02!

Kodierung:
L o e s
u n g E
i n s e
n d e a
u f g a
b e 1 6
- 0 2 !

Verschlüsselter Text:
Luinub-onndfe0egseg12sEeaa6!

Erstellen Sie ein Programm, das den Benutzer zur Eingabe des Klartextes auffordert und den verschlüsselten Text ausgibt.
Wie müsste man das Programm erweitern, um beliebig lange Texte zu verschlüsseln?

Bin auch soweit fertig, bekomme aber beim Kompilieren folgende Fehlermeldung. Weiss jemand Abhilfe?

C:\Übungsdateien\Codierung.java:23: replace(char,char) in java.lang.String cannot be applied to (java.lang.String,java.lang.String)
plaintext = plaintext.replace(" ", "");
^
1 error

Prozess beendet mit Exit-Code 1


PHP-Code:
// methoden importieren wegen tastatureingabe und dem zufallszahlgenerator
 
import java.io.*;
import java.util.Random;
class 
Codierung {
public static 
void main(String[] args) {
 
// n paar variable initialisieren
 
char[][] ciphertext = new char[7][4];
int temp 0;
int tempFill 0;
int alphaLength 26;
int count 0;
String codedText "";
 
// den zu verschlüsselnden text annehmen und die leerzeichen entfernen
 
String plaintext readString("Bitte den zu verschluesselnden Text eingeben: ");
plaintext plaintextreplace(" """);
 
// berechnen wieviel zeichen aufgefüllt werden müssen
// für texte ohne längen beschränkung müsste man hier das array aufstellen
// so das alle zeichen hinein passen
 
temp 28 plaintext.length();
if(
temp 0) {
System.out.println("Der Text darf mal 28 Zeichen (ohne Leer) besitzen, in der jetztigen Version des Programmes.");
System.exit(1);
} else if(
temp 0) {
Random rNumber = new Random();
for(
int i 0tempi++) {
tempFill 65 rNumber.nextInt(alphaLength);
plaintext plaintext + (char)tempFill;
}
}
 
// nun den text verschlüsseln
 
for(int j 07j++) {
// zeilen
 
for(int n 04n++) {
// spalten
 
ciphertext[j][n] = plaintext.charAt(count);
count++;
}
}
 
// den text aus dem array nehmen und in nen string schreiben
 
for(int m 04m++) {
// spalten
 
for(int o 07o++) {
//zeilen
 
codedText += ciphertext[o][m];
}
}
System.out.println(codedText);
}
 
// hilfsmethode für die tastatureingabe
 
static public String readString(String msg) {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
while(
true) {
System.out.print(msg);
try {
String eingabe input.readLine();
return 
eingabe;
}
catch (
Exception Fehler) {
{}
}
}
}


Geändert von Ben (14.01.2006 um 19:56 Uhr). Grund: Code-Formatierung hinzugefügt
bertionline ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.01.2006, 20:39   Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Suche:
Code:
plaintext = plaintext.replace(" ", "");
Ersetze mit:
Code:
plaintext = plaintext.replaceAll(" ", "");
Es gibt in Java < 5 keine Methode replace(String, String). Das ist der Fehler.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 15:26   Nach oben    #3
Neuer Benutzer
 
Registriert seit: 13.01.2006
Beiträge: 4
Standard

Vielen Dank schon mal pago, aber das wars wohl noch nicht:


C:\Übungsdateien\Codierung.java:23: cannot resolve symbol
symbol : method replaceAll (java.lang.String,java.lang.String)
location: class java.lang.String
plaintext = plaintext.replaceAll(" ", "");
^
1 error

Prozess beendet mit Exit-Code 1
bertionline ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 17:01   Nach oben    #4
Erfahrener Benutzer
 
Benutzerbild von karahead
 
Registriert seit: 23.11.2005
Ort: Stadtallendorf
Beiträge: 139
Standard

Musst ja auch noch String importieren.
import java.lang.String;
__________________
Die Menschen wünschen sich Unsterblichkeit, aber wissen nichts anzufangen an einem verregneten Sonntag Nachmittag.
karahead ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 18:15   Nach oben    #5
Neuer Benutzer
 
Registriert seit: 13.01.2006
Beiträge: 4
Standard

Okay, erledigt. Aber noch keine Besserung!
Hier der aktualisierte Programmabschnitt:

PHP-Code:
// methoden importieren wegen tastatureingabe und dem zufallszahlgenerator

import java.io.*;
import java.util.Random;
import java.lang.String;
class 
Codierung {
 public static 
void main(String[] args) {
// n paar variable initialisieren

 
char[][] ciphertext = new char[7][4];
  
int temp 0;
  
int tempFill 0;
  
int alphaLength 26;
  
int count 0;
  
String codedText "";

 
// den zu verschlüsselnden text annehmen und die leerzeichen entfernen
  
String plaintext readString("Bitte den zu verschluesselnden Text eingeben: ");
  
plaintext plaintext.replaceAll(" "" "); 

...und die Fehlermeldung:

C:\Übungsdateien\Codierung.java:24: cannot resolve symbol
symbol : method replaceAll (java.lang.String,java.lang.String)
location: class java.lang.String
plaintext = plaintext.replaceAll(" ", "");
^
1 error

Prozess beendet mit Exit-Code 1

Geändert von Ben (14.01.2006 um 19:55 Uhr). Grund: Code-Formatierung hinzugefügt
bertionline ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 18:24   Nach oben    #6
Benutzer
 
Registriert seit: 15.11.2005
Beiträge: 75
Standard

1. Klassen aus java.lang.* muss man nicht importieren

2. java.lang.String.replaceAll( String regex, String replace) gibt es erst ab JDK 1.4
Murray ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 19:52   Nach oben    #7
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Oh je... ok, konnte ja nicht damit rechnen, dass er das Microsoft-JDK verwendet.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 19:54   Nach oben    #8
Erfahrener Benutzer
 
Benutzerbild von karahead
 
Registriert seit: 23.11.2005
Ort: Stadtallendorf
Beiträge: 139
Standard

Woran erkennt ihr das? An der Fehlermeldung oder hab ich einen Post verpasst???
__________________
Die Menschen wünschen sich Unsterblichkeit, aber wissen nichts anzufangen an einem verregneten Sonntag Nachmittag.
karahead ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 20:10   Nach oben    #9
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Er kennt noch nichtmal die "replaceAll"-Methode, also muss die JDK-Version kleiner als 1.4 sein.

Ich glaube nicht, dass irgendwer noch das JDK 1.3 von Sun installiert hat, also wird er VisualJ mit dem Microsoft JDK verwenden (vergleichbar mit Suns 1.1).
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.01.2006, 20:21   Nach oben    #10
Erfahrener Benutzer
 
Benutzerbild von karahead
 
Registriert seit: 23.11.2005
Ort: Stadtallendorf
Beiträge: 139
Standard

Faszinierend deine Schlussforlgerung

Naja da kann ich nicht mitreden, weil ich nix von Microsoft in Verbindung mit Java halte
__________________
Die Menschen wünschen sich Unsterblichkeit, aber wissen nichts anzufangen an einem verregneten Sonntag Nachmittag.
karahead ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.01.2006, 13:53   Nach oben    #11
Neuer Benutzer
 
Registriert seit: 13.01.2006
Beiträge: 4
Standard

Juchu! Ich hab's!
Habe mir das aktuelle JDK 1.5 von Sun 'runtergeladen. Vorher war 1.3 installiert.

Die Methode lt. pago:
plaintext = plaintext.replaceAll(" ", "");

funktioniert allerdings nur wenn ich, wie von karahead beschrieben, den String importiere:
import java.lang.String;

Also, so ein bißchen hatten wohl alle Recht - und so soll es ja auch sein!

Okay, nochmal vielen vielen Dank an alle Mitwirkenden!
bertionline ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
frischling brauch hilfe tom1005 Datenbanken 16 06.06.2007 09:56
Riesiges Problem, brauch eure Hilfe! Chr!s Plauderecke 5 26.04.2006 18:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:35 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44