Erste Schritte Buchstaben durch Vor-vorgänger ersetzen.. wie kommt man von A zu Y?

strobi80

Mitglied
hallihallo und schönen sonntag auch,

eins vorneweg, ich will nicht, dass mir jemand die aufgabe löst, sondern will selbst draufkommen. dummerweise hab ich die letzten beiden vorlesungen in java verpennt, weil mir die sauferei mit den kommilitonen wichtiger war und muss das jetzt auf die reihe kriegen...naja...

folgende aufgabenstellung:

Gesucht ist ein einfacher Verschlüsselungsalgorithmus: In einer Zeichenkette wird jeder
Buchstabe durch seinen Vorgänger ersetzt: C -> A, D -> B, E -> C, …,Z -> X, A -> Y, B -> Z.
Alle anderen Zeichen bleiben unverändert, deutsche Umlaute brauchen ebenfalls nicht
berücksichtigt werden. Genauso soll die Groß-, Kleinschreibung der Worte sich nicht ändern.
So wird aus " Informatik " die Zeichenkette " Gldmpkyrgi". Die Methoden, die einen String auf
ein mal in ein Array of Character und umgekehrt umwandeln, dürfen nicht verwendet werden.
Nutzen Sie nur Konzepte die Sie bereits kennen. Die Realisierung der Verschlüsslung ausschließlich
mittels Bedienungen soll ebenfalls vermieden werden.


generell kann ich mir das so vorstellen:
zuerst bastel ich mir ein array zsammen, der das alphabet von Aa bis Zz beinhaltet. dann lass ich über eine for schleife jeden index des entsprechenden zeichens um 2 vermindern und gebe diesen dann aus.

die frage ist allerdings, wie ich dann weiterkomm, wenn man beispielsweise ein a oder b eingibt, und dann dementsprechend y oder z ausgegeben werden soll. hatte schon daran gedacht, das ganze über eine zuweisung durch ascii codes zu realisieren, aber da gibts doch bestimmt nen anderen weg, oder?

für ein paar denkanstöße wär ich echt dankbar :)

mfg
strobi
 

Ullenboom

Bekanntes Mitglied
Wenigstens bist du ehrlich, das ist schon mal toll. So als Anregung:

char transformedChar = (char)(string.charAt(position) + 1);

würde aus einem A ein B machen...
 
Zuletzt bearbeitet:

strobi80

Mitglied
jöi...so läufts... :)




Java:
import java.io.*; 

public class temp {

	public static void main(String[] args) throws IOException {
			
		String eingabeZeile;
		int v;
		char ch;
		int verschluesselt;
		
		System.out.println ("Eingabe:");
		BufferedReader eingabe = new BufferedReader (new InputStreamReader(System.in));
		
		eingabeZeile = eingabe.readLine();
		v = eingabeZeile.length();
		System.out.println ("Ausgabe:");
			
		// int i: Zaehlvariable fuer die for-Schleife
		for (int i = 0; i < v; i++) { 
		
			ch = eingabeZeile.charAt(i);
			// wenn ch groesser a und ch kleiner z dann...
			if ((ch>='a') && (ch<='z') || ((ch>='A') && (ch<='Z'))){
			
			if ( ch == 'a' || ch=='A' ) {ch+=26;}
			if ( ch == 'b' || ch=='B' ) {ch+=26;}
			// if (i=='a' || i=='b' || i==87||i==88) 
			
			verschluesselt = ch-2;
			System.out.print ((char)verschluesselt);
			}
		}		
			
	}
}
 

Neue Themen


Oben