J'aimerais obtenir de l'aide pour résoudre le problème d'avoir une nouvelle ligne après chaque cinquième nombre. Je mets des nombres aléatoires entre 1 et 90 dans une liste de tableaux, puis je les écris dans un fichier. (Plus tard, j'aimerais trier la liste et tout le reste, donc j'utilise une ArrayList au lieu d'écrire les nombres immédiatement dans le fichier.)
public class Lotto { static ArrayList<Integer> list = new ArrayList(); public static void main(String[] args) throws IOException { randomNumber(); fileReader(); } public static void printHeader() { System.out.println("Week" + "|Numbers " + "\n" + "----+" + "-----------------------+"); } public static void randomNumber() { int num; int n = 5; // String str = String.valueOf(num); list = new ArrayList<>(); try { FileWriter writer = new FileWriter("/Users/xyz/desktop/lotto2010.txt"); BufferedWriter bw = new BufferedWriter(writer); for (int i = 1; i <= 260; i++) { double number = Math.random() * 90; num = (int) number; list.add(num); if((i % n) == 0) bw.newLine(); } bw.write(list.toString()); bw.close(); } catch (IOException ex) { System.out.println("Couldn't write the file or directory doesn't exist" + ex.getMessage()); } } public static void fileReader() throws IOException { FileReader fileReader = new FileReader("/Users/xyz/desktop/lotto2010.txt"); String allText; try (PrintWriter writer = new PrintWriter("/Users/xyz/desktop/lotto2011.txt")) { BufferedReader br = new BufferedReader(fileReader); allText = br.readLine(); writer.print(allText); } System.out.println(allText); } }
3 Réponses :
Ajoutez une boucle
, recherchez i% 5 == 0
, ajoutez / n
ou bw.newLine ();
Ouais, une faute de frappe ... content parce que ça a aidé :)
PsuedoCode:
for (int i = 0; i < array.size(); i++{ println(array(i)); if(i % 5 == 0){ println(); } }
@ArvindKumarAvinash Merci! Nouveau sur le site. J'espère que cela a aidé!
Cela fera le nécessaire, ce que vous faites est que, tout en générant des nombres, vous l'ajoutez à la liste et écrivez une nouvelle ligne en même temps tous les 5 nombres. Bien que vous deviez le faire en itérant dans le tableau. Avant l'itération, vous pouvez modifier votre tableau en utilisant le tri ou quoi que ce soit
9, 10, 10, 10, 11 11, 11, 12, 12, 13 13, 13, 13, 13, 13 14, 14, 14, 14, 15 16, 16, 17, 17, 17 18, 18, 19, 19, 19 19, 20, 21, 21, 21 22, 23, 23, 23, 23 23, 24, 24, 24, 25 26, 26, 26, 26, 26 .............
en obtenant une sortie comme celle-ci -
FileWriter writer = new FileWriter("/Users/xyz/desktop/lotto2010.txt"); BufferedWriter bw = new BufferedWriter(writer); for (int i = 1; i <= 260; i++) { double number = Math.random() * 90; num = (int) number; list.add(num); } // optional step like sorting, as per your question Collections.sort(list); for (int i = 0; i < list.size(); i++) { bw.write(list.get(i).toString()); if(i!=0 && i % n == 0) { bw.newLine(); } else { bw.write(", "); } } bw.close();
Comment voulez-vous que votre dossier soit? Voulez-vous 5 chiffres par ligne?
Vous pouvez ajouter une boucle et vérifier si i% 5 == 0, puis ajouter / n