Je veux donc raccourcir mon code et je me suis demandé s'il y avait une possibilité qu'un générateur de lettres aléatoires en Java soit aussi court qu'en python. En python, ce n'est qu'une seule doublure.
Le code suivant est encore mon code:
int random = (int) Math.random()*25; String[] letters ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; String letter = letters[random];
3 Réponses :
Si "court" signifie juste une ligne, alors n'importe lequel de ces éléments ferait l'affaire:
char letter = "abcdefghijklmnopqrstuvwxyz".charAt((int) (Math.random() * 26)); char letter = (char) ThreadLocalRandom.current().nextInt('a', 'z'+1); char letter = (char) ('a' + Math.random() * 26);
Utilisez la table ASCII. 97 = 'a', alors ajoutez simplement votre nombre aléatoire à cela et convertissez-le en caractère.
public class MyClass { public static void main(String args[]) { char z = (char)(97 + Math.random()*26); System.out.println("z = " + z); } }
Utilisez 'a'
, et non 97, pour rendre le code un peu plus auto-documenté.
Ceci est la version la plus courte pour créer 100 caractères:
Character[] result = new Random().ints(100,'a','z'+1).mapToObj(ch -> (char)ch).toArray(Character[]::new);
Salut Pereki, ce serait bien de poster votre code :)
Jusqu'à quel point Python peut-il le faire, et quelle métrique de «court» voulez-vous? Personnages? Pas? Autre chose?
Si vous demandez une comparaison, ce serait bien de savoir à quoi nous comparons, c'est-à-dire à quel point Python peut-il le faire?
Qu'est-il arrivé à
x
,y
etz
?lol, c'est assez drôle, merci pour ton rappel