Class WildChars


  • public class WildChars
    extends java.lang.Object
    Luokka wildmat-vertailuun, jossa jokereita ovat * ja ?
    Version:
    1.0, 23.03.2002
    Author:
    Vesa Lappalainen, Markku Vire
    • Constructor Summary

      Constructors 
      Constructor Description
      WildChars()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean containsWildChars​(java.lang.String str)
      Palauttaa sisältääkö jono str jokerimekrkkejä * tai ?
      static boolean onkoSamat​(java.lang.String str, java.lang.String mask)
      Testaa ovatko kaksi merkkijonoa samat maskin mielessä jos ne muutetaan isoille kirjaimille.
      static boolean wildmat​(java.lang.String str, java.lang.String mask)
      Funktiolla tutkitaan täsmääkö annettu jono verrattavaan maskiin.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • containsWildChars

        public static boolean containsWildChars​(java.lang.String str)
        Palauttaa sisältääkö jono str jokerimekrkkejä * tai ?
        Parameters:
        str - jono jota tutkitaan
        Returns:
        sisältääkö jono (true) jokerimerkkejä vai ei (false)
        Example:
          containsWildChars(null) === false;
          containsWildChars("*")  === true;
          containsWildChars("?")  === true;
          containsWildChars("a*b?c")  === true;
         
      • wildmat

        public static boolean wildmat​(java.lang.String str,
                                      java.lang.String mask)
         Funktiolla tutkitaan täsmääkö annettu jono verrattavaan maskiin.
         Maski saa sisältää seuraavia erikoismerkkejä:
           * vastaa 0-n merkkiä
           ? vastaa mitä tahansa yhtä merkkiä
        
         Algoritmi: Kysymysmerkki ja tavallinen kirjain normaalisti
                    Jos tulee vastaan tähti joka ei ole jonon lopussa,
                    niin ongelmahan on oikeastaan
                    (koska tähän asti kaikki on ollut oikein)
                    "Onko loppujono sama kuin toisen jonon loppu JOSTAKIN
                     kohdasta alkaen"?
                    Siis kokeillaan sovittaa loppujonoa aliohjelman itsensä
                    (rekursio) avulla kaikkiin mahdollisiin loppupaikkoihin.
         Esimerkki: str = "Kissa" maski = "*ss*" -> true
                                        = "*ss"  -> false
         
        Parameters:
        str - jono jota tutkitaan
        mask - maski johon verrataan
        Returns:
        onko samat (true) vai ei (false) maskin mielessä.
        Example:
            wildmat("kissa","kissa")           === true;
            wildmat("kissa","kiss*")           === true;
            wildmat("kissa","kss*")            === false;
            wildmat("kissa","k*ss*")           === true;
            wildmat("kissa","k***********ss*") === true;
            wildmat("kissa","*iss*")           === true;
            wildmat("kissa","*kiss*")          === true;
            wildmat("kissa","*kissa*")         === true;
            wildmat("kissa","*k?ss*")          === true;
            wildmat("kissa","kass*")           === false;
            wildmat("","*a")                   === false;
            wildmat("","*")                    === true;
            wildmat("","")                     === true;
            wildmat("a","")                    === false;
            wildmat("kissa","KISSA")           === false;
            wildmat("k","k?")                  === false;
            wildmat(null,null)                 === true;
            wildmat("",null)                   === false;
            wildmat(null,"")                   === false;
         
         
      • onkoSamat

        public static boolean onkoSamat​(java.lang.String str,
                                        java.lang.String mask)
        Testaa ovatko kaksi merkkijonoa samat maskin mielessä jos ne muutetaan isoille kirjaimille.
        Parameters:
        str - tutkittava jono
        mask - maski
        Returns:
        true jos samat
        Example:
           onkoSamat("kissa","KISSA") === true;
           onkoSamat("KISSA","kissa") === true;
           onkoSamat("kissa","kiss") === false;
           onkoSamat("KISSA","ki*") === true;