java generazione n caratteri random non ripetuti [RISOLTO]
java generazione n caratteri random non ripetuti [RISOLTO]
Ciao gente!!Sono ore che sto girando per internet...Purtroppo il tempo stringe per me e ho bisogno di chiedervi una cosa non molto complicata,ma di cui non ho molto tempo per arrovellarmici!
Allora, ho bisogno per un mio progetto universitario di una classe che genera n caratteri random non ripetuti. Ho provato a cercar su internet e l'unica cosa minimamente utile che ho trovato è a questo link
Però questa classe genera solo lettere alfabetiche, ripetute in più! Qualcuno mi può aiutare per fare in modo che possano esserci anche caratteri come
'@', '/' e altri...e in più non ci siano ripetizioni nella generazione?
So che non è una cosa complicata, ma nel frattempo devo pensare ad altre cose..
Vi sono immensamente grato se mi date una mano!! (b2b)
Allora, ho bisogno per un mio progetto universitario di una classe che genera n caratteri random non ripetuti. Ho provato a cercar su internet e l'unica cosa minimamente utile che ho trovato è a questo link
Però questa classe genera solo lettere alfabetiche, ripetute in più! Qualcuno mi può aiutare per fare in modo che possano esserci anche caratteri come
'@', '/' e altri...e in più non ci siano ripetizioni nella generazione?
So che non è una cosa complicata, ma nel frattempo devo pensare ad altre cose..
Vi sono immensamente grato se mi date una mano!! (b2b)
Ultima modifica di Anonymous il sabato 16 giugno 2007, 18:08, modificato 1 volta in totale.
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Re: java generazione n caratteri random non ripetuti
Hai postato in modo errato il link, ecco quello giusto
http://www.javafaq.nu/java-example-code-184.html%22
http://www.javafaq.nu/java-example-code-184.html%22
porco diodo...
Re: java generazione n caratteri random non ripetuti
Grazie!Ho corretto!Ora..qualcuno mi aiuta?
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Re: java generazione n caratteri random non ripetuti
Non conosco il Java, ma posso scriverti questo pseudo-codice che non dovresti avere troppi problemi ad adattare:Ichigo85 ha scritto: Grazie!Ho corretto!Ora..qualcuno mi aiuta?
Codice: Seleziona tutto
boolean Flags[LENGTH] = false;
for i from 0 to 9
{
int rand
rand = Random (0, LENGTH - i)
while Flags[rand]
{
rand++
if rand > LENGTH
{
rand = 0
}
}
Flags[rand] = true;
print (rand)
}
porco diodo...
Re: java generazione n caratteri random non ripetuti
Ho capito!Perfetto grazie!
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Re: java generazione n caratteri random non ripetuti
Se hai risolto metti RISOLTO come prefisso del titolo del post e non sarebbe male se postassi il codice in Java per semplificare future ricerche, buona programmazione!Ichigo85 ha scritto: Ho capito!Perfetto grazie!
porco diodo...
Re: java generazione n caratteri random non ripetuti [RISOLTO]
Ok...non so se servirà a qualcuno, ma ecco il codice!
Per farlo mi sono basato su una classe che ho trovato su internet. L'ho modificata in modo da non aver ripetizioni.
Basta fare un main dove chiama il metodo randomAscii
Codice: Seleziona tutto
import java.util.Random;
public class RandomChar {
private static final Random RANDOM = new Random();
public static String randomAscii(int count) {
return random(count, 32, 127, false, false);
}
public static String random(int count, int start, int end, boolean letters, boolean numbers) {
return random(count, start, end, letters, numbers, RANDOM);
}
public static String random(int count, int start, int end, boolean letters, boolean numbers, Random random) {
int revcount=0;
boolean repeted=false;
if (count == 0) {
return "";
} else if (count < 0) {
throw new IllegalArgumentException("Requested random string length " + count + " is less than 0.");
}
if ((start == 0) && (end == 0)) {
end = 'z' + 1;
start = ' ';
if (!letters && !numbers) {
start = 0;
end = Integer.MAX_VALUE;
}
}
StringBuffer buffer = new StringBuffer();
String randomString;
int gap = end - start;
while (count-- != 0) {
char ch;
ch = (char) (random.nextInt(gap) + start);
if ((letters && numbers && Character.isLetterOrDigit(ch))
|| (letters && Character.isLetter(ch))
|| (numbers && Character.isDigit(ch))
|| (!letters && !numbers)) {
revcount++;
repeted=false;
if (revcount>1){
for (int i=0; i<revcount-1;i++) {
if (ch == buffer.charAt(i)) {
count++;
revcount--;
repeted=true;
}
}
}
if (repeted==false) buffer.append(ch);
} else {
count++;
}
}
randomString=buffer.toString();
return randomString;
}
}Basta fare un main dove chiama il metodo randomAscii
"Se schivo, non verrò tagliato!
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Sto proteggendo qualcuno, non morirà!
Se attacco, TAGLIERÒ!!" (Ichigo, Bleach)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti

