???:L Bitte einmal mit drüber nachdenken

Dax_ka

Mitglied
Hallo,

Ich habe ein Programm geschrieben, dass ein Datum, eine Zahl und den ersten Buchstaben eines Vornamens und den Nachnamen in einen Buchstabensalat verwandelt. Für Vor- und Nachname habe ich folgende Methode gebastelt. Die Bitfolgen in den if-bedingungen entsprechen Wegbeschreibungen eines binären Baums. Dabei sind die kürzesten Folgen die häufigsten Buchstaben der deutsch Sprache.
Java:
private String Meth_A(String surname, String givenname){
		//
		String name=surname.charAt(0)+givenname;
		//
		name=name.toUpperCase();
		name=name.replace('Ä','A');
		name=name.replace('Ö','O');
		name=name.replace('Ü','U');
		String bc="";
		//
		for(int i=0;i<name.length();i++){	
			//3-Bits
			if(name.charAt(i)=='E') bc=bc+"011"; 
			//4-Bits
			if(name.charAt(i)=='N') bc=bc+"1100";
			if(name.charAt(i)=='I') bc=bc+"0000";
			if(name.charAt(i)=='S') bc=bc+"0001";
			if(name.charAt(i)=='T') bc=bc+"0100";
			if(name.charAt(i)=='R') bc=bc+"1101";
			if(name.charAt(i)=='A') bc=bc+"0011";
			//5-Bits
			if(name.charAt(i)=='Z') bc=bc+"00100";
			if(name.charAt(i)=='O') bc=bc+"01010";
			if(name.charAt(i)=='U') bc=bc+"01011";
			if(name.charAt(i)=='M') bc=bc+"10100";
			if(name.charAt(i)=='L') bc=bc+"10101";
			if(name.charAt(i)=='G') bc=bc+"10110";
			if(name.charAt(i)=='H') bc=bc+"10111";
			if(name.charAt(i)=='C') bc=bc+"10000";
			if(name.charAt(i)=='D') bc=bc+"10001";  
			//6-Bits
			if(name.charAt(i)=='Y') bc=bc+"001010";
			if(name.charAt(i)=='X') bc=bc+"001011";
			if(name.charAt(i)=='K') bc=bc+"111000";
			if(name.charAt(i)=='J') bc=bc+"111001";
			if(name.charAt(i)=='B') bc=bc+"111010";
			if(name.charAt(i)=='F') bc=bc+"111011";
			if(name.charAt(i)=='W') bc=bc+"111100";
			if(name.charAt(i)=='V') bc=bc+"111101";
			if(name.charAt(i)=='Q') bc=bc+"111110";
			if(name.charAt(i)=='P') bc=bc+"111111";
			if(name.charAt(i)=='-') bc=bc+"100111";
		}
		return bc;
	}???:L

An diesen String hänge ich dann noch 5 Bit für den Tag, 4 Bit für den Monat, 4 für das Jahr (dem entsprechend is der Jahreszahlbereich ewas eingeschränkt) und noch zwei Bit für die erwähnte ominöse Zahl.

Nun möchte ich das ganze in 6 Bit lange Blöcke aufteilen, welche ich dann in dezimalzahlen wandle. Also Zahlen zwischen 0 und 63 Diese Zahlen nehme ich dann und ersetze sie durch Unicode Zeichen, hier 0-9, a-z, A-Z und noch ein paar andere, da ich mit dem Bereich ja nicht auf 64 mögliche Zeichen komme. Das wäre dann besagter Buchstabensalat.
Nun ist dem aufmerksamen Leser hier vielleicht schon aufgefallen, dass durch die unterschiedlichen Längen der Bitfolgen für die Buchstaben des Namen, der gesammte String sich nicht immer durch 6 teilen läst.
Zur Zeit pack ich an den Anfang einfach so viele Nullen, dass es passt. Soweit auch ok, allerdings möchte ich diesen Buchstabensalat auch wieder zurück wandeln:

Also die Zeichen in die entsprechenden dezimal Zahlen wandeln und diese wieder in binäre und schwupps hab ich wieder meinen binären String. Das Datum und die eine Zahl kann ich recht einfach zurück wandeln, da ich sie ja ganz hinten angehängt habe und die Anzahl der Bits kenne die sie darstellen.
Und nun kommt der Hacken:
Eigentlich kann ich ja meine Bitfolgen aus dem String wieder raus suchen und die entsprechenden Buchstaben ausgeben. Z.B. so:
Java:
String key="111001111100011000101001011101010111011111011";  //*1

		
		while(key.length()>2){
				if(key.substring(0,6).equals("001010")){
					key=key.substring(6);
					System.out.println(" Y "+key); 
					}
				else 
					if(key.substring(0,6).equals("001011")){
						key=key.substring(6);
						System.out.println(" X "+key);
					}
					else

und so weiter ... bis

Java:
																if(key.substring(0,3).equals("011")){														  key=key.substring(3);												System.out.println(" E "+key);
}
else
break;																																}

Das klappt auch so,aber an dem oben gezeigten String *1 würde mein Programm jetz eigentlich noch 4 Nullen an den Anfang stellen um den gesammten String + Datum usw. durch 6 teilbar zu machen.
(Der String im Beispiel steht nur für Buchstaben, datum is also nich dabei)
Und genau hier ist der Knackpunkt. Wenn ich also vorne, oder auch hinten, 0en oder 1en anhänge bekomme ich unter Umständen nicht mehr den korrekten Namen raus.

Nun meine Frage an euch, liebe Leser:

Wie könnte ich den String sonst verlängern oder die Verlängerung als diese kenntlich machen? Hab mir schon den Kopf zerbrochen, aber mir will nix einfallen:autsch:

Gruß, Dax
 

AmunRa

Gesperrter Benutzer
Ganz auf die schnelle:

statt den Vielen ifs schau dir lieber mal ein das switch Statement an. und wenn du switch nicht haben willst dann wenigsten if else
und bc sollte eher kein String sein sondern ein StringBuilder

warum sind deine Buchstaben Bit zuordnungen überhaupt unterschiedlich lang? warum füllst du nicht einfach z.B bei deiner 3 bitzuordnung bereits drei 0 vorne dazu?

z.B.

Java:
if(name.charAt(i)=='E') bc=bc+"000011";


damit wäre das ganze immer 6 bit lang.
 
Zuletzt bearbeitet:

Dax_ka

Mitglied
Weil ich dadurch erreichen will, dass der Buchstabensalat kürzer wird. Wenn in dem Namen zum Beispiel zwei E's vor habe ich im Salat ein Char-Zeichen weniger. Es gibt einen Namen für diese Vorgehensweise, find das aber leider nicht wieder :applaus: . Damit kann man zum Beispiel den Speicherplatz von Texten verkleinern.
 

Dax_ka

Mitglied
Heute 11:45
Dekker Denke er meint Huffman- oder Shannon-Fano-Codierung

Ja genau! Das wars. Danke.

Nachdem ich gerade ausgiebig an einem Ort war wo man bekanntlich am besten nachdenken kann hab ich jetz ne Idee:
Der binäre String:

|Vor- und Nachnamen Bits | Verlängerung |Datum und Zahl |Prüfbit|

Also ich hab mir überlegt ich pack ganz hinten nen Bit ran, ist es 0 wurde nicht verlängert, bei 1 schon.
In den Bereich Verlängerung pack ich dann die Verlängerung :toll: welcher dann immer eine 1 vorn stehen hat und von 0 gefolgt wird. Diesen durchwandere ich dann von rechts nach links so lange bis eine 1 kommt und damit hätte ich dann die Längerung der Verlängerung Oo.

Was haltet ihr davon?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
J Bitte Hilfe Java Basics - Anfänger-Themen 4
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
P Bitte helft mir Java Basics - Anfänger-Themen 3
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6
M Bitte um Verbesserungsvorschläge Java Basics - Anfänger-Themen 14
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
J Datentypen Generics - Bitte helfen !! Java Basics - Anfänger-Themen 9
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S Datei-KopierProgramm ? CODE BITTE VERBESSERN Java Basics - Anfänger-Themen 11
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
M Bitte um Kontrolle meines Quelltextes Java Basics - Anfänger-Themen 10
J Leichte Java Anfängerfrage. Bitte schnelle Antwort. :) Java Basics - Anfänger-Themen 10
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
D Ausgabe in Datei ( bitte helfen ) Java Basics - Anfänger-Themen 13
-horn- Bitte: Wie besondere Daten auslesen und umspeichern? Java Basics - Anfänger-Themen 3
N Bitte um Hilfe - zyklisch Existenz einer Datei prüfen Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben