Class FuzzyScore


  • public class FuzzyScore
    extends Object
    A matching algorithm that is similar to the searching algorithms implemented in editors such as Sublime Text, TextMate, Atom and others.

    One point is given for every matched character. Subsequent matches yield two bonus points. A higher score indicates a higher similarity.

    This code has been adapted from Apache Commons Lang 3.3.

    Since:
    1.0
    • Method Detail

      • fuzzyScore

        public Integer fuzzyScore​(CharSequence term,
                                  CharSequence query)

        Find the Fuzzy Score which indicates the similarity score between two Strings.

         score.fuzzyScore(null, null, null)                                    = IllegalArgumentException
         score.fuzzyScore("", "", Locale.ENGLISH)                              = 0
         score.fuzzyScore("Workshop", "b", Locale.ENGLISH)                     = 0
         score.fuzzyScore("Room", "o", Locale.ENGLISH)                         = 1
         score.fuzzyScore("Workshop", "w", Locale.ENGLISH)                     = 1
         score.fuzzyScore("Workshop", "ws", Locale.ENGLISH)                    = 2
         score.fuzzyScore("Workshop", "wo", Locale.ENGLISH)                    = 4
         score.fuzzyScore("Apache Software Foundation", "asf", Locale.ENGLISH) = 3
         
        Parameters:
        term - a full term that should be matched against, must not be null
        query - the query that will be matched against a term, must not be null
        Returns:
        result score
        Throws:
        IllegalArgumentException - if either CharSequence input is null
      • getLocale

        public Locale getLocale()
        Gets the locale.
        Returns:
        the locale