Hallo zusammen,
habe meinen qt wie folgt zusammen; Leider werde aus mir unerklärlichen Gründen die permutierten Strings doppelt bis drefach ausgegeben...
Hat jmd. eine Idee warum??
import java.io.*;
public class Codieren
{
static int laenge;
static char[] feld;
static String s;
static Codieren code = new Codieren();
public static int[] split (String input) {
int[] intArray = new int[input.length()];
for(int i = 0; i < input.length(); i++) {
intArray[i] = Integer.parseInt(input.substring(i, i+1));
}
return intArray;
}
public String stringcompose(int[] zfeld)
{
String returnString = "";
for (int i = 0 ; i < zfeld.length; i++)
{
switch(zfeld[i]) {
case 0: returnString += ""; break;
case 1: returnString += ""; break;
case 2: returnString += "abc"; break;
case 3: returnString += "def"; break;
case 4: returnString += "ghi"; break;
case 5: returnString += "jkl"; break;
case 6: returnString += "mno"; break;
case 7: returnString += "pqrs"; break;
case 8: returnString += "tuv"; break;
case 9: returnString += "wxyz"; break;
default: returnString += "";
}
}
/*System.out.println("String: "+returnString);
System.out.println("Laenge: "+returnString.length());
System.out.println("LaengeArray: "+returnString.toCharArray().length);*/
code.perm(returnString.toCharArray(), returnString.toCharArray().length);
return returnString;
}
static void perm(char[] a, int endIndex)
{
if (endIndex == 0)
ausgabe(a);
else
{
perm(a, endIndex -1 );
for (int i = 0; i < endIndex ; i++)
{
vertausche(a, i, endIndex -1);
perm(a, endIndex-1);
vertausche(a, i, endIndex - 1);
} // for i
}
} // perm
static void vertausche(char[] a, int i, int j)
{
char ablage = a[i];
a[i] = a[j];
a[j] = ablage;
}
static void ausgabe(char[] a)
{
for (int i = 0; i < a.length ; i++)
{
System.out.print(a[i]);
}
System.out.print("\n");
} // ausgabe
public static void main(String args[]) throws IOException
{
BufferedReader din = new BufferedReader (new InputStreamReader (System.in));
System.out.print("Geben Sie die Zahl ein: ");
s = din.readLine();
laenge = s.length();
code.stringcompose(split(s));
}
}