J
Javafragen
Gast
Ausgeworfen wird:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
Code:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
Code:
Java:
public String dekodiere(String geheimtext) {
String decoded = "";
//Ermitteln der Positionen:
int [] key1Pos = new int[codeword.length()];
for(int i = 0; i < key1Pos.length; i++)
{
//ermitteln der Anzahl des bisherigen Auftretens des Buchstabens
char currentLetter = geheimtext.charAt(i);
int included = 0;
for(int j = 0; j < i; j++)
{
if(geheimtext.charAt(j) == currentLetter)
{
included++;
}
}
//Ermitteln der Position:
for(int k = 0; k < key1Pos.length; k++)
{
if(codeword.charAt(k) == currentLetter)
{
key1Pos[i] = k + 1;
if(included == 0)
{
break;
}
else
{
included--;
}
}
}
}
//Erzeugen einer Matrix:
Matrix [] matrixArray = new Matrix[geheimtext.length()];
for(int i = 0; i < geheimtext.length(); i++){
int keyIndex = key1Pos[(i % key1Pos.length)];
int blockIndex = i / key1Pos.length;
matrixArray[i] = new Matrix(keyIndex, geheimtext.charAt(i), blockIndex, key1Pos.length);
}
//Weitergabe der Matrix:
for(int i = 1; i <= geheimtext.length(); i++){
for(int j = 0; j < geheimtext.length(); j++){
if(matrixArray[j].getPosition() == i){
decoded += matrixArray[j].getValue();
break;
}
}
}
return decoded;
}