All pastes #374634 Raw Edit

Miscellany

public text v1 · immutable
#374634 ·published 2007-02-27 18:55 UTC
rendered paste body
 public class ArvausJono {
	private char[] merkit;
	private boolean[] tunnettu;
   
    public ArvausJono(String mjono) {
       	// otetaan talteen merkkijonon pituus (merkkien määrä)
    	int length = mjono.length();   
    	// tehdään tyhjät taulukot merkkijonon pituisiksi   
    	this.merkit = new char[length];
    	this.tunnettu = new boolean[length];
           
    	// alustetaan taulukoiden arvot  
    	for (int i = 0; i < length; i++) {
     		merkit[i] = mjono.charAt(i); // alustetaan merkit-taulukko mjonon kirjaimilla 
    		tunnettu[i] = false; // periaatteessa myös boolean on false ilman alustusta, mutta selkeämpää alustaa kaikki taulukota, niin tietää ainakin mitä niissä on
  
    	}
  
    } 
    
    public boolean loytyy(char kirjain) {
    	int i;

        boolean loytyy = false;
    	
    	if (this.merkit.length > 0) {
    		
    		for (i = 0; i < this.merkit.length; i++) {
    			if (kirjain == this.merkit[i] && this.tunnettu[i] == false) {
    				this.merkit[i] = kirjain;
    				this.tunnettu[i] = true;
    				// ei lopeteta (return) vielä tässä, vaan merkataan loytyy-muuttujaan, että kirjaimia on löytynyt, jotta kaikki voidaan merkata
                                loytyy = true;
    			}
                        // Tässä ei saa olla else-lohkoa, eikä pidä palata, vaan koko merkkijono pitää käydä läpi aina
    		}
    		
    	}

        return loytyy;
    }
    
    public boolean kaikkiLoydetty() {
    	boolean kaikki;
    	int i;

        // Tässä oli enemmänkin häikkää
        // Ideana on käydä kaikki kirjaimet läpi
        // ja palauttaa false heti kun yksikin kirjain on löytämättä eli tunnettu[i] == false
        // Jos falseja ei löydy, kaikki on löydetty ja voidaan palauttaa true
    	
    	for (i = 0; i < this.merkit.length; i++) {
    		if (this.tunnettu[i] == false) {
    		  return false; // loppuja ei tarvitse testata, kun kaikkia ei jokatapauksessa ole nyt löydetty
    		}
        }

        return true; // Yhtään falsea ei ollut, kaikki löydetty
    }
    
    public String toString() {
    	String jono = "";    	 	
    	
    	for (int i = 0; i < this.tunnettu.length; i++) {
    		if (this.tunnettu[i] == false)
    			jono = jono + "_";
    		else
    			jono = jono + merkit[i];
    	}
    	return jono;
    }
    
    
}