chorium

SananValinta.java

Feb 16th, 2019
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.95 KB | None | 0 0
  1. package hirsipuu;
  2.  
  3. import java.util.Scanner;
  4. import java.util.ArrayList;
  5. import java.io.File;
  6.  
  7. public class SananValinta {
  8.     private ArrayList<String> sanat;
  9.     private ArrayList<String> kaytetytSanat;
  10.     private String viimeinenSana;
  11.    
  12.    
  13.     public SananValinta() {
  14.         this.sanat = new ArrayList<>();
  15.         this.kaytetytSanat = new ArrayList<>();
  16.        
  17.     }
  18.    
  19.     public void sanojenLisays() {
  20.         try(Scanner tiedostonLukija = new Scanner(new File("sanalista.txt"))) {
  21.            
  22.             while (tiedostonLukija.hasNextLine()) {
  23.                 String rivi = tiedostonLukija.nextLine();
  24.                 String[] osat = rivi.split(",");
  25.                 for (String sana:osat) {
  26.                     if (!(sana.isEmpty())) {
  27.                         this.sanat.add(sana);
  28.                     }    
  29.                 }
  30.             }
  31.         } catch (Exception e) {
  32.             System.out.println("Virhe: " + e.getMessage());
  33.         }
  34.            
  35.     }
  36.    
  37.     public String sananGenerointi() {
  38.        
  39.         String sana = duplicateWordBlocker();
  40.  
  41.         return sana;
  42.     }
  43.    
  44.     public String duplicateWordBlocker() {
  45.  
  46.         while (true) {
  47.            
  48.             int randomIndeksi = (int) (Math.random()*this.sanat.size());
  49.             String testiSana = this.sanat.get(randomIndeksi);
  50.            
  51.             if (testiSana.equals(this.viimeinenSana)) {
  52.                 testiSana = this.sanat.get(randomIndeksi);
  53.             } else if (!(this.kaytetytSanat.contains(testiSana))) {
  54.                 this.kaytetytSanat.add(testiSana);
  55.                 this.viimeinenSana = testiSana;
  56.                 return testiSana;
  57.             }
  58.            
  59.             this.viimeinenSana = this.kaytetytSanat.get(this.kaytetytSanat.size()-1);
  60.            
  61.             if (this.sanat.size() == this.kaytetytSanat.size()) {
  62.                 this.kaytetytSanat.clear();
  63.             }
  64.  
  65.         }
  66.     }
  67.  
  68. }
Add Comment
Please, Sign In to add comment