Nun wollte ich fragen, ob es auch möglich ist, einen String in einen 2Dimensionalen char-Array umzuwandeln?
gefunden habe ich leider nichts und alle meine Versuche sind kläglichst gescheitert .p
Ich nehme auch mal an, dass man dann beim 2Dim.Array die Anz. der spalten oder zeilen angeben muss und habe dann kein plan ob er die 'Matrix' dann Zeilenweise oder Spaltenweise packen wird.
THX.[/code]
String input_output = "Testsatz der in die Matrix soll!"
//Zeilen der Matrix berechnen
int laenge = input_output.length();
int zeilen = laenge / spalten;
if (laenge % spalten == 0) a = 0;
//Matrix erstellen
char[][] m;
m = new char [zeilen+a][spalten];
//Füllen der Matrix
for (int index=0;index<laenge;index++)
{
int Zeile = index / spalten;
int Spalte = index % spalten;
m[Zeile][Spalte]=input_output.charAt(index);
}
ups...sollte mcih mal registrieren, dann kann ich auch editieren .p
aber die variable: 'spalten' steht naturlich auch fest, sie wird bei mir uebergeben, genauso wie eigtl.
der String 'input_output' , also für spalten einfach nen integer, der kleiner ist als die länge des Strings input_output!
aehm
jedenfalls das ist nicht so das prob, jetzt schreibe ich die matrix ja zeilenweise, aber hinterher lese ich sie spaltenweise aus (ist fuer so ne dumme aufgabe die ich machen muss), jedenfalls muss ja nicht immer die letzte zeile der matrix ganz voll sein.
so jetz das prob:
zum umkehren muss ich die matrix spaltenweise eingeben, und mit zwei for-schleifen geht es nicht..kp warum..Oo
jedenfalls habe ich das problem gelöst indem ich den string in zwei unterteilt habe...
hier der code:
Code:
public void Entschluessel(String crypted, int spalten)
{
//Grössen deklaration
String str1 = "";
String str2 = "";
int index1=0;
int laenge = crypted.length();
int zeilen = (laenge / spalten) + 1;
int test = laenge % spalten;
//Matrix erstellen
char[][] m;
m = new char [zeilen][spalten];
//Chiffrat teilen!
for (index1=0;index1<test*zeilen;index1++)
{
str1 = str1 + crypted.charAt(index1);
}
for (index1=test*zeilen;index1<laenge;index1++)
{
str2 = str2 + crypted.charAt(index1);
}
//Matrix füllen!
if (test != 0) {
for (index1=0;index1<str1.length();index1++)
{
int y = index1 % zeilen;
int x = index1 / zeilen;
m[y][x]=str1.charAt(index1);
} }
zeilen--;
for (index1=0;index1<str2.length();index1++)
{
int y = index1 % zeilen;
int x = (index1 / zeilen) + test;
m[y][x]=str2.charAt(index1);
}
//Auslesen der Matrix
for (int zeile1 = 0;zeile1<=zeilen;zeile1++)
{
for (int spalte1 = 0;spalte1<spalten;spalte1++)
{
if ((int)m[zeile1][spalte1] > 63) input_output += m[zeile1][spalte1];
}
}
}
funz auch. nur umstaendlich .p
so meine güte, bitte lass mcih beim weiternachdenken nicht nomma posten müssen .p