ciao
codice:
public static void main(String[] args) {
String set = "abc";
String v="";
int numSet=0;
do
{
numSet++;
String app = null;
if(numSet == 1)
{
for(int i=0 ;i<set.length() ;i++)
{
v="";
v += set.substring(i, i+1);
System.out.println( v);
/* for(int j=0;j<3;j++)
{
v+= set.substring(j, j+1);
System.out.println(v);
v = set.substring(i, i+1);
}*/
}
}
else if(numSet == 2)
{
for(int i=0 ;i<set.length();i++)
{
v="";
v += set.substring(i, i+1);
//System.out.println("primo valore v: " + v);
for( int j=0;j<set.length();j++)
{
v+= set.substring(j, j+1);
System.out.println(v);
v = set.substring(i, i+1);
}
}
}
else if(numSet == 3)
{
for(int i=0 ;i<set.length();i++)
{
v="";
v += set.substring(i, i+1);
//System.out.println("primo valore v: " + v);
for( int j=0;j<set.length();j++)
{
v = set.substring(i, i+1);
v+= set.substring(j, j+1);
app= v;
// System.out.println(v);
// v = set.substring(i, i+1);
for(int x = 0; x < set.length() ; x++)
{
v+= set.substring(x, x+1);
System.out.println(v);
v= app;
}
}
}
}
else if(numSet == 4)
{
String primaLett;
String secLett;
String terzLett;
for(int i=0;i<set.length();i++)
{
v = "";
v+= set.substring(i, i+1);
primaLett = v;
for(int j=0;j<set.length();j++)
{
v = primaLett;
v+=set.substring(j, j+1);
secLett = v;
for(int z=0;z<set.length();z++)
{
v = secLett;
v+= set.substring(z, z+1);
terzLett = v;
for(int x = 0; x < set.length(); x++)
{
v = terzLett;
v+= set.substring(x, x+1);
System.out.println(v);
}
}
}
}
}
}while(numSet!=4);
}
questo codice mi permette di fare le permutazioni con ripetizione fino ad una stringa lunga
4 caratteri.
il codice è molto ripetitivo e perciò ho pensato che ci dev'essere un'altra soluzione per esempio con la ricorsione.. solo che non riesco a trovare una soluzione.
qualcuno di voi mi può aiutare?
grazie mille