Package Torello.Java

Class StrCmpr


  • public class StrCmpr
    extends java.lang.Object
    StrCmpr - Documentation.

    This class offers an API that has a large collection of comparison routines for a java.lang.String.

    Obviously, Regular-Expressions will always be capable of providing the most powerful String-Search and manipulations routines. However, with the extra level of control that a Regular-Expression offers comes some extra-amount of complexity. The routines in class StrCmpr and class StrIndexOf can eliminate for-loops and all the debugging that comes along with them - saving programmers countless hours of when their programs need only simple comparisons and searches that can be written without a RegEx.

    The methods in this class use substring comparison-logic, rather than token compares - meaning that the loops are checking only the characters within input parameter(s) comparStr. The characters before and after a match are ignored.

    Example:
    1
    2
    3
    4
    5
    boolean result = StrCmpr.containsXOR_CI("Visited in August of this year." "july", "august");
    // Evaluates to TRUE
    
    boolean result = StrCmpr.containsXOR_CI("Traveled to Beijing last year.", "july", "august");
    // Evaluates to FALSE
    

    Methods Available

    Method-Name Key-Word Explanation
    NAND May not find any matches between the primary String srcStr parameter, and the String's passed to 'compareStr'

    NAND-NOTE: There is one very important subtlety about the meaning of 'NAND' here. In this case, the methods that use 'NAND' interpret its meaning as "NOT ANY ONE OF..." - meaning all comparisons must fail.
    XOR Must find precisely one match between the primary String srcStr parameter, and the String's in 'compareStr'.

    There is one 'philosophical note' which is that if multiple copies of an identical-String are passed via the comparison-Stringarray (String... comparestr), all XOR methods shall not pay heed to the notion that they the 'srcStr' parmeter may have only started-with, ended-with or contained a single String (and 'philosophically passing' the XOR, one-and-only-one test). The internal-logical is 'programmatically ignorant' of this - multiple copies of an identical-String (or identical, ignoring-case) could theoretically be flagged via throwing an IllegalArgumentException. However, no such check is performed.
    OR Must find at least one match between the primary String srcStr parameter, and the String's in the 'compareStr' parameter.
    AND Must identify a containing-match between each and every String in String... compareStr and the primary 'srcStr' parameter.
    Starts With The provided compare-String (or String's) must match the beginning of parameter 'srcStr'.
    Ends With The provided compare-String (or String's) must match the ending of parameter 'srcStr'.
    Contains The provided compare-String (or String's) must be a substring of parameter 'srcStr'.
    CI (Case Insensitive) All equality-tests will be done on a Case Insensitive basis.


    Static (Functional) API: The methods in this class are all (100%) defined with the Java Key-Word / Key-Concept 'static'. Furthermore, there is no way to obtain an instance of this class, because there are no public (nor private) constructors. Java's Spring-Boot, MVC feature is *not* utilized because it flies directly in the face of the light-weight data-classes philosophy. This has many advantages over the rather ornate Component Annotations (@Component, @Service, @AutoWired, etc... 'Java Beans') syntax:

    • The methods here use the key-word 'static' which means (by implication) that there is no internal-state. Without any 'internal state' there is no need for constructors in the first place! (This is often the complaint by MVC Programmers).
    • A 'Static' (Functional-Programming) API expects to use fewer data-classes, and light-weight data-classes, making it easier to understand and to program.
    • The Vectorized HTML data-model allows more user-control over HTML parse, search, update & scrape. Also, memory management, memory leakage, and the Java Garbage Collector ought to be intelligible through the 'reuse' of the standard JDK class Vector for storing HTML Web-Page data.

    The power that object-oriented programming extends to a user is (mostly) limited to data-representation. Thinking of "Services" as "Objects" (Spring-MVC, 'Java Beans') is somewhat 'over-applying' the Object Oriented Programming Model. Like most classes in the Java-HTML JAR Library, this class backtracks to a more C-Styled Functional Programming Model (no Objects) - by re-using (quite profusely) the key-word static with all of its methods, and by sticking to Java's well-understood class Vector

    Static Fields: The methods in this class do not create any internal state that is maintained - however there are a few private & static fields defined. These fields are instantiated only once during the Class Loader phase (and only if this class shall be used), and serve as data 'lookup' fields (static constants). View this class' source-code in the link provided below to see internally used data.

    This class maintains two public, static fields that can be useful for debugging. These fields include a 'Debug' Consumer<String> DEBUG_LOG for accepting log-notices when using this class, and an boolean DEBUG for turning this feature on and off.



    • Field Summary

      Fields 
      Modifier and Type Field
      protected static byte AND
      static boolean DEBUG
      static Consumer<String> DEBUG_LOG
      protected static byte NAND
      protected static byte OR
      protected static byte XOR
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method
      protected static boolean AND​(String methodName, String srcStr, String[] compareStr, Predicate<String> pred)
      static boolean contains​(String srcStr, int sPos, int ePos, String compareStr)
      protected static boolean contains​(String srcStr, LV l, String compareStr)
      protected static boolean CONTAINS​(boolean ignoresCase, byte booleanOperation, String srcStr, String[] cmpStrs)
      protected static boolean CONTAINS​(boolean ignoresCase, byte booleanOperation, LV l, String srcStr, String[] cmpStrs)
      static boolean containsAND​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsAND​(String srcStr, String... compareStr)
      static boolean containsAND_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsAND_CI​(String srcStr, String... compareStr)
      static boolean containsIgnoreCase​(String srcStr, int sPos, int ePos, String compareStr)
      static boolean containsIgnoreCase​(String srcStr, String compareStr)
      protected static boolean containsIgnoreCase​(String srcStr, LV l, String compareStr)
      static boolean containsNAND​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsNAND​(String srcStr, String... compareStr)
      static boolean containsNAND_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsNAND_CI​(String srcStr, String... compareStr)
      static boolean containsOR​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsOR​(String srcStr, String... compareStr)
      static boolean containsOR_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsOR_CI​(String srcStr, String... compareStr)
      static boolean containsXOR​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsXOR​(String srcStr, String... compareStr)
      static boolean containsXOR_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean containsXOR_CI​(String srcStr, String... compareStr)
      static boolean endsWith​(String srcStr, int sPos, int ePos, String compareStr)
      protected static boolean endsWith​(String srcStr, LV l, String compareStr)
      static boolean endsWithIgnoreCase​(String srcStr, int sPos, int ePos, String compareStr)
      static boolean endsWithIgnoreCase​(String srcStr, String compareStr)
      protected static boolean endsWithIgnoreCase​(String srcStr, LV l, String compareStr)
      static boolean endsWithNAND​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean endsWithNAND​(String srcStr, String... compareStr)
      static boolean endsWithNAND_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean endsWithNAND_CI​(String srcStr, String... compareStr)
      static boolean endsWithXOR​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean endsWithXOR​(String srcStr, String... compareStr)
      static boolean endsWithXOR_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean endsWithXOR_CI​(String srcStr, String... compareStr)
      static boolean equals​(String srcStr, int sPos, int ePos, String compareStr)
      protected static boolean equals​(String srcStr, LV l, String compareStr)
      static boolean equalsIgnoreCase​(String srcStr, int sPos, int ePos, String compareStr)
      protected static boolean equalsIgnoreCase​(String srcStr, LV l, String compareStr)
      static boolean equalsNAND​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean equalsNAND​(String srcStr, String... compareStr)
      static boolean equalsNAND_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean equalsNAND_CI​(String srcStr, String... compareStr)
      static boolean equalsXOR​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean equalsXOR​(String srcStr, String... compareStr)
      static boolean equalsXOR_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean equalsXOR_CI​(String srcStr, String... compareStr)
      protected static boolean NAND​(String methodName, String srcStr, String[] compareStr, Predicate<String> pred)
      protected static boolean OR​(String methodName, String srcStr, String[] compareStr, Predicate<String> pred)
      static boolean startsWith​(String srcStr, int sPos, int ePos, String compareStr)
      protected static boolean startsWith​(String srcStr, LV l, String compareStr)
      static boolean startsWithIgnoreCase​(String srcStr, int sPos, int ePos, String compareStr)
      static boolean startsWithIgnoreCase​(String srcStr, String compareStr)
      protected static boolean startsWithIgnoreCase​(String srcStr, LV l, String compareStr)
      static boolean startsWithNAND​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean startsWithNAND​(String srcStr, String... compareStr)
      static boolean startsWithNAND_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean startsWithNAND_CI​(String srcStr, String... compareStr)
      static boolean startsWithXOR​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean startsWithXOR​(String srcStr, String... compareStr)
      static boolean startsWithXOR_CI​(String srcStr, int sPos, int ePos, String... compareStr)
      static boolean startsWithXOR_CI​(String srcStr, String... compareStr)
      protected static boolean XOR​(String methodName, String srcStr, String[] compareStr, Predicate<String> pred)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEBUG

        public static boolean DEBUG
        Utility field. You may choose to set this variable to true, and the following String commands will print to an internally stored Consumer<String> DEBUG_LOG class that may be set. This is generally a very minor drain on code-efficiency. When this flag is set to FALSE, a short if-statement evaluation still occurs even when the flag is false on each occasion that the string-comparison loops identify and return a match. This is very minor performance loss, and does provide quite a lot of help to those trying to identify difficult to notice problems with partial-String comparisons.

        IMPORTANT: In order to use this minor debugging feature, it is necessary to provide a Consumer<String> DEBUG_LOG to the public static field! If this field is not set to a valid, non-null object-reference, then this class will through a NullPointerException on its first attempt to compare strings. This String-consumer may do anything it wants with the debug-String information.

        FORMAT: The output string format is just:
        1
        2
        3
         private static void PRNT(String methodName, String srcStr, String compareStr)
         { DEBUG_LOG.accept(methodName + "-MATCH[" + srcStr + ", " + compareStr + "] "); }
         
        

        Generally, you would want to use a simple lambda such as:

        Example:
        1
        2
         StrCmpr.DEBUG_LOG = (String logInfoStr) -> System.out.println(logInfoStr);
         
        


        FINALLY: If you are logging, please note that any of the methods whose name ends with the phrase "IgnoreCase" will not contribute (print) to the log. this is primarily because these are all single-argument comparisons, and logging would be of only minor benefit. The primary benefit of a debug-log is the ability to identify which/when a particular substring from a list of substrings actually matched. The methods whose names contain the two letter acronym "_CI" are all "Case Insensitive" - and they also do comparisons to multiple-input var-args String parameters.
        Code:
        Exact Field Declaration Expression:
        1
        public static boolean DEBUG = false;
        
      • DEBUG_LOG

        public static java.util.function.Consumer<java.lang.String> DEBUG_LOG
        This object reference cannot be null when DEBUG is TRUE. This StorageWriter will receive text-notifications every time the string-comparing loops identify a match.

        IMPORTANT: No attempt has been made to ensure that this debugging feature will operate perfectly in a multi-threaded environment. The two reasons for this are:
        1. The primary purpose of this LOG is for debugging code, not putting details about string-match information into an 'on-line' or production environment.
        2. This is a best-efforts string-comparison package that would sacrifice quite a bit of its utility if it were expected to maintain multiple instances of this class just to have StrCmpr debug operations work in multiple-threads. Code readability necessitates keeping this a class with only static methods.
        3. Two threads making calls to this class StrCmpr might see log-writes that, sadly, look like they 'interlaced' (crashed), but even when this occasions, reading the log wouldn't be that difficult anyway.
        Code:
        Exact Field Declaration Expression:
        1
        public static Consumer<String> DEBUG_LOG = null;
        
      • AND

        protected static final byte AND
        Signifies that an 'AND' operation is required, but only for methods that implement one of the 'contains' variants.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        protected static final byte AND   = 0;
        
      • OR

        protected static final byte OR
        Signifies that an 'AND' operation is required, but only for methods that implement one of the 'contains' variants.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        protected static final byte OR    = 1;
        
      • NAND

        protected static final byte NAND
        Signifies that an 'AND' operation is required, but only for methods that implement one of the 'contains' variants.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        protected static final byte NAND  = 2;
        
      • XOR

        protected static final byte XOR
        Signifies that an 'AND' operation is required, but only for methods that implement one of the 'contains' variants.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        protected static final byte XOR   = 3;
        
    • Method Detail

      • AND

        protected static boolean AND​
                    (java.lang.String methodName,
                     java.lang.String srcStr,
                     java.lang.String[] compareStr,
                     java.util.function.Predicate<java.lang.String> pred)
        
        This performs the internal AND. It expects a comparison Predicate in order for the comparison to work.
        Parameters:
        methodName - If printing-debug information is expected, by the DEBUG global-variable, this String is used.
        srcStr - This is the same source-string parameter from all the methods in this class.
        compareStr - This is the same var-args string array from all the methods in this class.
        pred - This is the comparison Predicate provided by the methods in this class that call this method.
        Returns:
        The AND of these String's, using the provided Predicate.
        Throws:
        StrCmprException - This exception shall throw if there are any invalid String's in the compare-string parameter array.

        IMPORTANT NOTE: The conditions that would cause this exception to throw should remind the reader that each and every method here will throw exception 'StrCmprException' if invalid input has been passed to the "Compare String" Variable-Arguments String... Parameter.
        Code:
        Exact Method Body:
        1
        2
        3
        4
        5
        6
         StrCmprException.check(compareStr);
        
         for (String cmp: compareStr) if (! pred.test(cmp))
         { if (DEBUG) PRNT(methodName + "-MATCHFAIL", srcStr, cmp); return false; }
        
         return true;
        
      • NAND

        protected static boolean NAND​
                    (java.lang.String methodName,
                     java.lang.String srcStr,
                     java.lang.String[] compareStr,
                     java.util.function.Predicate<java.lang.String> pred)
        
        This performs the internal NAND. It expects a comparison Predicate in order for the comparison to work.
        Parameters:
        methodName - If printing-debug information is expected, by the DEBUG global-variable, this String is used.
        srcStr - This is the same source-string parameter from all the methods in this class.
        compareStr - This is the same var-args string array from all the methods in this class.
        pred - This is the comparison Predicate provided by the methods in this class that call this method.
        Returns:
        The NAND of these String's, using the provided Predicate.
        Throws:
        StrCmprException - This exception shall throw if there are any invalid String's in the compare-string parameter array.

        IMPORTANT NOTE: The conditions that would cause this exception to throw should remind the reader that each and every method here will throw exception 'StrCmprException' if invalid input has been passed to the "Compare String" Variable-Arguments String... Parameter.
        Code:
        Exact Method Body:
        1
        2
        3
        4
        5
        6
         StrCmprException.check(compareStr); 
        
         for (String cmp: compareStr) if (pred.test(cmp))
         { if (DEBUG) PRNT(methodName + "-MATCH", srcStr, cmp); return false; }
        
         return true;
        
      • OR

        protected static boolean OR​
                    (java.lang.String methodName,
                     java.lang.String srcStr,
                     java.lang.String[] compareStr,
                     java.util.function.Predicate<java.lang.String> pred)
        
        This performs the internal OR. It expects a comparison Predicate in order for the comparison to work.
        Parameters:
        methodName - If printing-debug information is expected, by the DEBUG global-variable, this String is used.
        srcStr - This is the same source-string parameter from all the methods in this class.
        compareStr - This is the same var-args string array from all the methods in this class.
        pred - This is the comparison Predicate provided by the methods in this class that call this method.
        Returns:
        The OR of these String's, using the provided Predicate.
        Throws:
        StrCmprException - This exception shall throw if there are any invalid String's in the compare-string parameter array.

        IMPORTANT NOTE: The conditions that would cause this exception to throw should remind the reader that each and every method here will throw exception 'StrCmprException' if invalid input has been passed to the "Compare String" Variable-Arguments String... Parameter.
        Code:
        Exact Method Body:
        1
        2
        3
        4
        5
        6
         StrCmprException.check(compareStr);
        
         for (String cmp: compareStr) if (pred.test(cmp))
         { if (DEBUG) PRNT(methodName + "-MATCH", srcStr, cmp); return true; }
        
         return false;
        
      • XOR

        protected static boolean XOR​
                    (java.lang.String methodName,
                     java.lang.String srcStr,
                     java.lang.String[] compareStr,
                     java.util.function.Predicate<java.lang.String> pred)
        
        This performs the internal XOR. It expects a comparison Predicate in order for the comparison to work.
        Parameters:
        methodName - If printing-debug information is expected, by the DEBUG global-variable, this String is used.
        srcStr - This is the same source-string parameter from all the methods in this class.
        compareStr - This is the same var-args string array from all the methods in this class.
        pred - This is the comparison Predicate provided by the methods in this class that call this method.
        Returns:
        The XOR of these String's, using the provided Predicate.
        Throws:
        StrCmprException - This exception shall throw if there are any invalid String's in the compare-string parameter array.

        IMPORTANT NOTE: The conditions that would cause this exception to throw should remind the reader that each and every method here will throw exception 'StrCmprException' if invalid input has been passed to the "Compare String" Variable-Arguments String... Parameter.
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
         StrCmprException.check(compareStr); 
        
         int count=0;
        
         for (String cmp: compareStr)
             if (pred.test(cmp))
                 if (++count > 1)
                 { if (DEBUG) PRNT(methodName + "-MATCH", srcStr, cmp); return false; }
        
         return count == 1;
        
      • equalsXOR

        public static boolean equalsXOR​(java.lang.String srcStr,
                                        java.lang.String... compareStr)
        This will return TRUE if exactly one of the String's inside String[] compareStr equals the value of srcStr. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that precisely one of these must match the value of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if precisely one of the 'compareStr' elements equals (case-sensitive) 'srcStr', and FALSE otherwise. An internal counter is maintained, and it must equal 1 prior to exit in order for TRUE to be returned. In the case that multiple copies of an identical String have been passed into parameter String[] compareStr, FALSE is returned.
        See Also:
        XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("equalsXOR", srcStr, compareStr, cmp -> srcStr.equals(cmp));
        
      • equalsNAND

        public static boolean equalsNAND​(java.lang.String srcStr,
                                         java.lang.String... compareStr)
        This will return FALSE if even one of the String's inside String[] compareStr equal the value of srcStr. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that none of these will match the value of 'srcStr' - and if, after testing, none of them actually match, this method will return true.
        Returns:
        TRUE if none of the elements present within compareStr equal srcStr, and FALSE otherwise.
        See Also:
        NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("equalsNAND", srcStr, compareStr, cmp -> srcStr.equals(cmp));
        
      • equalsXOR_CI

        public static boolean equalsXOR_CI​(java.lang.String srcStr,
                                           java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr equals the value of srcStr. Obviously, this must be an "XOR EQUALS" (because a String may only equal one srcStr (itself!).

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that precisely one of these must match the value of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if precisely one of the 'compareStr' elements equals (case-insensitive) srcStr, and FALSE otherwise. An internal counter is maintained, and it must equal 1 prior to exit in order for TRUE to be returned. In the case that multiple copies of an identical String have been passed into parameter String[] compareStr, FALSE is returned.
        See Also:
        XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("equalsXOR_CI", srcStr, compareStr, cmp -> srcStr.equalsIgnoreCase(cmp));
        
      • equalsNAND_CI

        public static boolean equalsNAND_CI​(java.lang.String srcStr,
                                            java.lang.String... compareStr)
        This will return FALSE if even one of the String's inside String[] compareStr equal the value of srcStr.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that none of these will match the value of 'srcStr' - and if, after testing, none of them actually match, this method will return true.
        Returns:
        TRUE if none of the elements present within compareStr equal srcStr, and FALSE otherwise.
        See Also:
        NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("equalsNAND_CI", srcStr, compareStr, cmp -> srcStr.equalsIgnoreCase(cmp));
        
      • containsOR

        public static boolean containsOR​(java.lang.String srcStr,
                                         java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr are contained within srcStr. This is an "inclusive-OR" comparison. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that at least one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if at least one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(false, OR, srcStr, compareStr);
        
      • containsAND

        public static boolean containsAND​(java.lang.String srcStr,
                                          java.lang.String... compareStr)
        This will return TRUE if every one of the String's inside String[] compareStr is also contained within srcStr. This is an "AND" comparison. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that each and every one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if every one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(false, AND, srcStr, compareStr);
        
      • containsXOR

        public static boolean containsXOR​(java.lang.String srcStr,
                                          java.lang.String... compareStr)
        This will return TRUE if precisely-one of the String's inside String[] compareStr is also contained within srcStr. This is an "exclusive-OR" (XOR) comparison. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that exactly one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if one-and-only-one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(false, XOR, srcStr, compareStr);
        
      • containsNAND

        public static boolean containsNAND​(java.lang.String srcStr,
                                           java.lang.String... compareStr)
        This will return TRUE only if none of the String's inside String[] compareStr are found to be substrings within srcStr. This is an "NOT-AND" (NOT-ANY) comparison. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is not expected to find even one of these String's present as a substring of 'srcStr'. If one is found, this method will return FALSE.
        Returns:
        TRUE if every/all of the 'compareStr' elements are found not to be contained as a substring of srcStr, and otherwise FALSE will be returned (if a match is found).
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(false, NAND, srcStr, compareStr);
        
      • containsOR_CI

        public static boolean containsOR_CI​(java.lang.String srcStr,
                                            java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr are contained within srcStr. This is an "inclusive-OR" comparison.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that at least one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if at least one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(true, OR, srcStr, compareStr);
        
      • containsAND_CI

        public static boolean containsAND_CI​(java.lang.String srcStr,
                                             java.lang.String... compareStr)
        This will return TRUE if every one of the String's inside String[] compareStr is also contained within srcStr. This is an "AND" comparison.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that each and every one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if every one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(true, AND, srcStr, compareStr);
        
      • containsXOR_CI

        public static boolean containsXOR_CI​(java.lang.String srcStr,
                                             java.lang.String... compareStr)
        This will return TRUE if precisely-one of the String's inside String[] compareStr is also contained within srcStr. This is an "exclusive-OR" (XOR) comparison.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that exactly one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        Returns:
        TRUE if one-and-only-one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(true, XOR, srcStr, compareStr);
        
      • containsNAND_CI

        public static boolean containsNAND_CI​(java.lang.String srcStr,
                                              java.lang.String... compareStr)
        This will return TRUE only if none of the String's inside String[] compareStr are found to be substrings within srcStr. This is a "NOT-AND" (NOT-ANY) comparison.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is not expected to find even one of these String'spresent as a substring of 'srcStr'. If one is found, this method will return FALSE.
        Returns:
        TRUE if every/all of the 'compareStr' elements are found not to be contained as a substring of srcStr, and otherwise FALSE will be returned (if a match is found).
        See Also:
        CONTAINS(boolean, byte, String, String[])
        Code:
        Exact Method Body:
        1
         return CONTAINS(true, NAND, srcStr, compareStr);
        
      • endsWithXOR

        public static boolean endsWithXOR​(java.lang.String srcStr,
                                          java.lang.String... compareStr)
        Checks if one String srcStr matches any ending from a list of possible endings. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        TRUE if the srcStr ends with precisely one of the elements of compareStr, and FALSE otherwise.
        See Also:
        XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("endsWithXOR", srcStr, compareStr, cmp -> srcStr.endsWith(cmp));
        
      • endsWithNAND

        public static boolean endsWithNAND​(java.lang.String srcStr,
                                           java.lang.String... compareStr)
        Checks and makes sure that one String srcStr does not match any of the endings from a list of possible endings ('compareStr[]'). The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        FALSE if the srcStr ends with any of the elements of 'compareStr', and TRUE otherwise.
        See Also:
        NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("endsWithNAND", srcStr, compareStr, cmp -> srcStr.endsWith(cmp));
        
      • startsWithXOR

        public static boolean startsWithXOR​(java.lang.String srcStr,
                                            java.lang.String... compareStr)
        Checks if one String srcStr matches any start from a list of possible beginning-String's. The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        Returns:
        TRUE if the srcStr starts with precisely one of the elements of 'compareStr', and FALSE otherwise.
        See Also:
        XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("startsWithXOR", srcStr, compareStr, cmp -> srcStr.startsWith(cmp));
        
      • startsWithNAND

        public static boolean startsWithNAND​(java.lang.String srcStr,
                                             java.lang.String... compareStr)
        Checks to make sure that one String srcStr does not begin with any of the listed "possible beginnings" from ('compareStr[]'). The test performed is case-sensitive.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        Returns:
        TRUE if the srcStr starts with any of the elements of 'compareStr', and FALSE otherwise.
        See Also:
        NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("startsWithNAND", srcStr, compareStr, cmp -> srcStr.startsWith(cmp));
        
      • endsWithXOR_CI

        public static boolean endsWithXOR_CI​(java.lang.String srcStr,
                                             java.lang.String... compareStr)
        Checks if one String srcStr matches any ending from a list of possible endings.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        TRUE if the srcStr ends with precisely one of the elements of 'compareStr', and FALSE otherwise.
        See Also:
        endsWithIgnoreCase(String, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("endsWithXOR_CI", srcStr, compareStr, cmp -> endsWithIgnoreCase(srcStr, cmp));
        
      • endsWithNAND_CI

        public static boolean endsWithNAND_CI​(java.lang.String srcStr,
                                              java.lang.String... compareStr)
        Checks and makes sure that one String srcStr does not match any of the endings from a list of possible endings ('compareStr[]').

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        FALSE if the srcStr ends with any of the elements of 'compareStr', and TRUE otherwise.
        See Also:
        endsWithIgnoreCase(String, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("endsWithNAND_CI", srcStr, compareStr, cmp -> endsWithIgnoreCase(srcStr, cmp));
        
      • startsWithXOR_CI

        public static boolean startsWithXOR_CI​(java.lang.String srcStr,
                                               java.lang.String... compareStr)
        Checks if one String srcStr matches any start from a list of possible beginning-String's.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        Returns:
        TRUE if the srcStr starts with precisely one of the elements of 'compareStr', and FALSE otherwise.
        See Also:
        startsWithIgnoreCase(String, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return XOR("startsWithXOR_CI", srcStr, compareStr, cmp -> startsWithIgnoreCase(srcStr, cmp));
        
      • startsWithNAND_CI

        public static boolean startsWithNAND_CI​(java.lang.String srcStr,
                                                java.lang.String... compareStr)
        Checks to make sure that one String srcStr does not begin with any of the listed "possible beginnings" from ('compareStr[]')

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        Returns:
        TRUE if the srcStr starts with any of the elements of 'compareStr', and FALSE otherwise.
        See Also:
        startsWithIgnoreCase(String, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
         return NAND("startsWithNAND_CI", srcStr, compareStr, cmp -> startsWithIgnoreCase(srcStr, cmp));
        
      • startsWithIgnoreCase

        public static boolean startsWithIgnoreCase​(java.lang.String srcStr,
                                                   java.lang.String compareStr)
        This performs the exact same comparison as Java's String.startsWith(String) method. Java provides an 'equalsIgnoreCase()' method, but not an 'startsWithIgnoreCase()'. This method does just that.
        Parameters:
        srcStr - This String is checked to see if it starts with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        Returns:
        TRUE if srcStr starts with compareStr (ignoring-case), and FALSE otherwise.
        Code:
        Exact Method Body:
        1
         return srcStr.regionMatches(true, 0, compareStr, 0, compareStr.length());
        
      • endsWithIgnoreCase

        public static boolean endsWithIgnoreCase​(java.lang.String srcStr,
                                                 java.lang.String compareStr)
        This performs the exact same comparison as Java's String.endsWith(String) method. Java provides an 'equalsIgnoreCase()' method, but not an 'endsWithIgnoreCase()'. This method does just that.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case), and FALSE otherwise.
        Code:
        Exact Method Body:
        1
        2
        3
         int compareStrLen   = compareStr.length();	
         int srcStrLen       = srcStr.length();			
         return srcStr.regionMatches(true, srcStrLen - compareStrLen, compareStr, 0, compareStrLen);
        
      • containsIgnoreCase

        public static boolean containsIgnoreCase​(java.lang.String srcStr,
                                                 java.lang.String compareStr)
        This performs the exact same comparison as Java's String.contains(String) method. Java provides an 'equalsIgnoreCase()' method, but not a 'containsIgnoreCase()'. This method does just that.
        Parameters:
        srcStr - This String is checked to see if it contains the compareStr
        compareStr - This String is checked against the srcStr - specifically, if compareStr is contained by srcStr
        Returns:
        TRUE if compareStr is a substring of srcStr (ignoring-case), and FALSE otherwise.
        See Also:
        containsIgnoreCase(String, LV, String)
        Code:
        Exact Method Body:
        1
         return containsIgnoreCase(srcStr, new LV(srcStr, 0, srcStr.length()), compareStr);
        
      • equalsXOR

        public static boolean equalsXOR​(java.lang.String srcStr,
                                        int sPos,
                                        int ePos,
                                        java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr equals the value of srcStr. Obviously, this must be an "XOR EQUALS" (because a String may only equal one String srcStr (itself!). The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that one of these must match the value of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if precisely one of the 'compareStr' elements equals 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equals(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("equalsXOR", srcStr, compareStr, cmp -> equals(srcStr, l, cmp));
        
      • equalsNAND

        public static boolean equalsNAND​(java.lang.String srcStr,
                                         int sPos,
                                         int ePos,
                                         java.lang.String... compareStr)
        This will return FALSE if even one of the String's inside String[] compareStr equal the value of srcStr. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that none of these will match the value of 'srcStr' - and if so, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if none of the elements present within compareStr equal srcStr, and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equals(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("equalsNAND", srcStr, compareStr, cmp -> equals(srcStr, l, cmp));
        
      • equalsXOR_CI

        public static boolean equalsXOR_CI​(java.lang.String srcStr,
                                           int sPos,
                                           int ePos,
                                           java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr equals the value of srcStr. Obviously, this must be an "XOR EQUALS" (because a String may only equal one String srcStr (itself!).

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that one of these must match the value of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if precisely one of the 'compareStr' elements equals 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equalsIgnoreCase(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("equalsXOR_CI", srcStr, compareStr, cmp -> equalsIgnoreCase(srcStr, l, cmp));
        
      • equalsNAND_CI

        public static boolean equalsNAND_CI​(java.lang.String srcStr,
                                            int sPos,
                                            int ePos,
                                            java.lang.String... compareStr)
        This will return FALSE if even one of the String's inside String[] compareStr equal the value of srcStr.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that none of these will match the value of 'srcStr' - and if so, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if none of the elements present within compareStr equal srcStr, and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equalsIgnoreCase(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("equalsNAND_CI", srcStr, compareStr, cmp -> equalsIgnoreCase(srcStr, l, cmp));
        
      • containsOR

        public static boolean containsOR​(java.lang.String srcStr,
                                         int sPos,
                                         int ePos,
                                         java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr are contained within srcStr. This is an "inclusive-OR" comparison. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that at least one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if at least one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(false, OR, l, srcStr, compareStr);
        
      • containsAND

        public static boolean containsAND​(java.lang.String srcStr,
                                          int sPos,
                                          int ePos,
                                          java.lang.String... compareStr)
        This will return TRUE if every one of the String's inside String[] compareStr is also contained within srcStr. This is an "AND" comparison. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that each and every one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if every one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(false, AND, l, srcStr, compareStr);
        
      • containsXOR

        public static boolean containsXOR​(java.lang.String srcStr,
                                          int sPos,
                                          int ePos,
                                          java.lang.String... compareStr)
        This will return TRUE if precisely-one of the String's inside String[] compareStr is also contained within srcStr. This is an "exclusive-OR" (XOR) comparison. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that exactly one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if one-and-only-one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(false, XOR, l, srcStr, compareStr);
        
      • containsNAND

        public static boolean containsNAND​(java.lang.String srcStr,
                                           int sPos,
                                           int ePos,
                                           java.lang.String... compareStr)
        This will return TRUE only if none of the String's inside String[] compareStr are found to be substrings within srcStr. This is an "NOT-AND" (NOT-ANY) comparison. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is not expected to find even one of these String'spresent as a substring of 'srcStr'. If one is found, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if every/all of the 'compareStr' elements are found not to be contained as a substring of srcStr, and otherwise FALSE will be returned (if a match is found).
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(false, NAND, l, srcStr, compareStr);
        
      • containsOR_CI

        public static boolean containsOR_CI​(java.lang.String srcStr,
                                            int sPos,
                                            int ePos,
                                            java.lang.String... compareStr)
        This will return TRUE if any of the String's inside String[] compareStr are contained within srcStr. This is an "inclusive-OR" comparison.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that at least one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if at least one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(true, OR, l, srcStr, compareStr);
        
      • containsAND_CI

        public static boolean containsAND_CI​(java.lang.String srcStr,
                                             int sPos,
                                             int ePos,
                                             java.lang.String... compareStr)
        This will return TRUE if every one of the String's inside String[] compareStr is also contained within srcStr. This is an "AND" comparison.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that each and every one of these String's will be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if every one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(true, AND, l, srcStr, compareStr);
        
      • containsXOR_CI

        public static boolean containsXOR_CI​(java.lang.String srcStr,
                                             int sPos,
                                             int ePos,
                                             java.lang.String... compareStr)
        This will return TRUE if precisely-one of the String's inside String[] compareStr is also contained within srcStr. This is an "exclusive-OR" (XOR) comparison.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is expected that exactly one of these String's will also be a substring of 'srcStr'. If not, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if one-and-only-one of the 'compareStr' elements is a substring of 'srcStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(true, XOR, l, srcStr, compareStr);
        
      • containsNAND_CI

        public static boolean containsNAND_CI​(java.lang.String srcStr,
                                              int sPos,
                                              int ePos,
                                              java.lang.String... compareStr)
        This will return TRUE only if none of the String's inside String[] compareStr are found to be substrings within srcStr. This is a "NOT-AND" (NOT-ANY) comparison.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's. It is not expected to find even one of these String'spresent as a substring of 'srcStr'. If one is found, this method will return FALSE.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if every/all of the 'compareStr' elements are found not to be contained as a substring of srcStr, and otherwise FALSE will be returned (if a match is found).
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        CONTAINS(boolean, byte, LV, String, String[])
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return CONTAINS(true, NAND, l, srcStr, compareStr);
        
      • endsWithXOR

        public static boolean endsWithXOR​(java.lang.String srcStr,
                                          int sPos,
                                          int ePos,
                                          java.lang.String... compareStr)
        Checks if one String srcStr matches any ending from a list of possible endings. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr ends with any of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWith(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("endsWithXOR", srcStr, compareStr, cmp -> endsWith(srcStr, l, cmp));
        
      • endsWithNAND

        public static boolean endsWithNAND​(java.lang.String srcStr,
                                           int sPos,
                                           int ePos,
                                           java.lang.String... compareStr)
        Checks and makes sure that one String srcStr does not match any of the endings from a list of possible endings ('compareStr[]'). The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        FALSE if the srcStr ends with any of the elements of 'compareStr', and TRUE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWith(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("endsWithNAND", srcStr, compareStr, cmp -> endsWith(srcStr, l, cmp));
        
      • startsWithXOR

        public static boolean startsWithXOR​(java.lang.String srcStr,
                                            int sPos,
                                            int ePos,
                                            java.lang.String... compareStr)
        Checks if one String srcStr matches any start from a list of possible beginning-String's. The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr starts with precisely one of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWith(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("startsWithXOR", srcStr, compareStr, cmp -> startsWith(srcStr, l, cmp));
        
      • startsWithNAND

        public static boolean startsWithNAND​(java.lang.String srcStr,
                                             int sPos,
                                             int ePos,
                                             java.lang.String... compareStr)
        Checks to make sure that one String srcStr does not begin with any of the listed "possible beginnings" from ('compareStr[]'). The test performed is case-sensitive.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr starts with any of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWith(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("startsWithNAND", srcStr, compareStr, cmp -> startsWith(srcStr, l, cmp));
        
      • endsWithXOR_CI

        public static boolean endsWithXOR_CI​(java.lang.String srcStr,
                                             int sPos,
                                             int ePos,
                                             java.lang.String... compareStr)
        Checks if one String srcStr matches any ending from a list of possible endings.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr ends with precisely one of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWithIgnoreCase(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("endsWithXOR_CI", srcStr, compareStr, cmp -> endsWithIgnoreCase(srcStr, l, cmp));
        
      • endsWithNAND_CI

        public static boolean endsWithNAND_CI​(java.lang.String srcStr,
                                              int sPos,
                                              int ePos,
                                              java.lang.String... compareStr)
        Checks and makes sure that one String srcStr does not match any of the endings from a list of possible endings ('compareStr[]').

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        FALSE if the srcStr ends with any of the elements of 'compareStr', and TRUE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWithIgnoreCase(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("endsWithNAND_CI", srcStr, compareStr, cmp -> endsWithIgnoreCase(srcStr, l, cmp));
        
      • startsWithXOR_CI

        public static boolean startsWithXOR_CI​(java.lang.String srcStr,
                                               int sPos,
                                               int ePos,
                                               java.lang.String... compareStr)
        Checks if one String srcStr matches any start from a list of possible beginning-String's.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr starts with precisely one of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWithIgnoreCase(String, LV, String), XOR(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return XOR("startsWithXOR_CI", srcStr, compareStr, cmp -> startsWithIgnoreCase(srcStr, l, cmp));
        
      • startsWithNAND_CI

        public static boolean startsWithNAND_CI​(java.lang.String srcStr,
                                                int sPos,
                                                int ePos,
                                                java.lang.String... compareStr)
        Checks to make sure that one String srcStr does not begin with any of the listed "possible beginnings" from ('compareStr[]')

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.

        'CI' NOTE: This method is identical to the one by the same name without the letters 'CI' appended. Here, 'CI' is an acronym for "Case Insensitive", and the difference implied is that all comparisons done by this method will ignore case.
        Parameters:
        srcStr - Any non-null instance of java.lang.String
        compareStr - This is one (or many) java String's, each of which shall be compared to the start of 'srcStr'.
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if the srcStr starts with any of the elements of 'compareStr', and FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWithIgnoreCase(String, LV, String), NAND(String, String, String[], Predicate)
        Code:
        Exact Method Body:
        1
        2
         LV l = new LV(srcStr, sPos, ePos);
         return NAND("startsWithNAND_CI", srcStr, compareStr, cmp -> startsWithIgnoreCase(srcStr, l, cmp));
        
      • equals

        public static boolean equals​(java.lang.String srcStr,
                                     int sPos,
                                     int ePos,
                                     java.lang.String compareStr)
        This performs the exact same comparison as Java's String.equals(String) method.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case), FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equals(String, LV, String)
        Code:
        Exact Method Body:
        1
         return equals(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • equalsIgnoreCase

        public static boolean equalsIgnoreCase​(java.lang.String srcStr,
                                               int sPos,
                                               int ePos,
                                               java.lang.String compareStr)
        This performs the exact same comparison as Java's String.equalsIgnoreCase(String) method.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case), FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        equalsIgnoreCase(String, LV, String)
        Code:
        Exact Method Body:
        1
         return equalsIgnoreCase(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • startsWith

        public static boolean startsWith​(java.lang.String srcStr,
                                         int sPos,
                                         int ePos,
                                         java.lang.String compareStr)
        This performs the exact same comparison as Java's String.startsWith(String) method.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWith(String, LV, String)
        Code:
        Exact Method Body:
        1
         return startsWith(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • startsWithIgnoreCase

        public static boolean startsWithIgnoreCase​(java.lang.String srcStr,
                                                   int sPos,
                                                   int ePos,
                                                   java.lang.String compareStr)
        This performs the exact same comparison as Java's String.startsWith(String) method. Java provides an 'equalsIgnoreCase()' method, but not a 'startsWithIgnoreCase()'. This method does just that.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        startsWithIgnoreCase(String, LV, String)
        Code:
        Exact Method Body:
        1
         return startsWithIgnoreCase(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • endsWith

        public static boolean endsWith​(java.lang.String srcStr,
                                       int sPos,
                                       int ePos,
                                       java.lang.String compareStr)
        This performs the exact same comparison as Java's String.endsWith(String) method.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWith(String, LV, String)
        Code:
        Exact Method Body:
        1
         return endsWith(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • endsWithIgnoreCase

        public static boolean endsWithIgnoreCase​(java.lang.String srcStr,
                                                 int sPos,
                                                 int ePos,
                                                 java.lang.String compareStr)
        This performs the exact same comparison as Java's String.endsWith(String) method. Java provides an 'equalsIgnoreCase()' method, but not a 'endsWithIgnoreCase()'. This method does just that.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it ends with the compareStr.
        compareStr - This String is checked against the srcStr - specifically, if srcStr ends with compareStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if srcStr ends with compareStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        endsWithIgnoreCase(String, LV, String)
        Code:
        Exact Method Body:
        1
         return endsWithIgnoreCase(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • contains

        public static boolean contains​(java.lang.String srcStr,
                                       int sPos,
                                       int ePos,
                                       java.lang.String compareStr)
        This performs the exact same comparison as Java's String.contains(String) method.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it contains the compareStr
        compareStr - This String is checked against the srcStr - specifically, if compareStr is contained by srcStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if compareStr is a substring of srcStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        contains(String, LV, String)
        Code:
        Exact Method Body:
        1
         return contains(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • containsIgnoreCase

        public static boolean containsIgnoreCase​(java.lang.String srcStr,
                                                 int sPos,
                                                 int ePos,
                                                 java.lang.String compareStr)
        This performs the exact same comparison as Java's String.contains(String) method. Java provides an 'equalsIgnoreCase()' method, but not a 'containsIgnoreCase()'. This method does just that.

        This method allows sub-sections, or 'partial-sections', of the java.lang.String to be checked. This is done via the int 'sPos' and the int 'ePos' parameters. These are indices into the 'srcStr' input-parameter.
        Parameters:
        srcStr - This String is checked to see if it contains the compareStr
        compareStr - This String is checked against the srcStr - specifically, if compareStr is contained by srcStr
        sPos - This is the integer-index String-location which limits the left-most position to search in 'srcStr'. This value is 'inclusive,' meaning that if the character at this index (in 'srcStr') is part of a match, it shall be factored into the return results. Note that if this value is negative, or larger than the length of 'srcStr', an exception will be thrown.
        ePos - This is the integer-index String-location which limits the right-most position to search in 'srcStr'. This value is 'exclusive,' meaning that if the character at this location is part of match, it will not be calculated into the results. If this value is larger than the length of input-parameter 'srcStr', an exception will throw.

        NOTE: Passing a negative value to this parameter, 'ePos', will cause its to be reset to the integer-value: srcStr.length()
        Returns:
        TRUE if compareStr is a substring of srcStr (ignoring-case). FALSE otherwise.
        Throws:
        java.lang.StringIndexOutOfBoundsException - This exception shall be thrown if any of the following are true:

        • If 'sPos' is negative, or if sPos is greater-than-or-equal-to the length of the String
        • If 'ePos' is zero, or greater than the length of the String
        • If the value of 'sPos' is a larger integer than 'ePos'. If ePos was negative, it is first reset to String.length(), before this check is done.
        See Also:
        containsIgnoreCase(String, LV, String)
        Code:
        Exact Method Body:
        1
         return containsIgnoreCase(srcStr, new LV(srcStr, sPos, ePos), compareStr);
        
      • equals

        protected static boolean equals​(java.lang.String srcStr,
                                        LV l,
                                        java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
         return ((l.end - l.start) == compareStr.length())
                 && srcStr.regionMatches(l.start, compareStr, 0, compareStr.length());
        
      • equalsIgnoreCase

        protected static boolean equalsIgnoreCase​(java.lang.String srcStr,
                                                  LV l,
                                                  java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
         return ((l.end - l.start) == compareStr.length())
                 && srcStr.regionMatches(true, l.start, compareStr, 0, compareStr.length());
        
      • startsWith

        protected static boolean startsWith​(java.lang.String srcStr,
                                            LV l,
                                            java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
         return ((l.end - l.start) >= compareStr.length()) 
                 && srcStr.regionMatches(l.start, compareStr, 0, compareStr.length());
        
      • startsWithIgnoreCase

        protected static boolean startsWithIgnoreCase​(java.lang.String srcStr,
                                                      LV l,
                                                      java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
         return ((l.end - l.start) >= compareStr.length()) 
                 && srcStr.regionMatches(true, l.start, compareStr, 0, compareStr.length());
        
      • endsWith

        protected static boolean endsWith​(java.lang.String srcStr,
                                          LV l,
                                          java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
        3
        4
         int compareStrLen = compareStr.length();	
        
         return ((l.end - l.start) >= compareStrLen)
                 && srcStr.regionMatches(l.end - compareStrLen, compareStr, 0, compareStrLen);
        
      • endsWithIgnoreCase

        protected static boolean endsWithIgnoreCase​(java.lang.String srcStr,
                                                    LV l,
                                                    java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
        1
        2
        3
        4
         int compareStrLen = compareStr.length();
            
         return ((l.end - l.start) >= compareStrLen)
                 && srcStr.regionMatches(true, l.end - compareStrLen, compareStr, 0, compareStrLen);
        
      • contains

        protected static boolean contains​(java.lang.String srcStr,
                                          LV l,
                                          java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
         // String.regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
         // Tests if two string regions are equal.  A substring of this {@code String} object is
         // compared to a substring of the argument other.  The result is true if these substrings
         // represent character sequences that are the same, ignoring case if and only if ignoreCase
         // is true.
        
         int compareStrLen   = compareStr.length();
         int loopLen         = l.end - compareStrLen;
        
         if ((l.end - l.start) < compareStrLen) return false;
        
         for (int i=l.start; i <= loopLen; i++)
             if (srcStr.regionMatches(i, compareStr, 0, compareStrLen))
                 return true;
        
         return false;
        
      • containsIgnoreCase

        protected static boolean containsIgnoreCase​(java.lang.String srcStr,
                                                    LV l,
                                                    java.lang.String compareStr)
        This method remains 'protected' because it utilizes a specialized Loop-Control Variable Class Version of 'LV'. It is used internally by the search methods above.
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
         // String.regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
         // Tests if two string regions are equal.  A substring of this {@code String} object is
         // compared to a substring of the argument other.  The result is true if these substrings
         // represent character sequences that are the same, ignoring case if and only if ignoreCase
         // is true.
        
         int compareStrLen   = compareStr.length();
         int loopLen         = l.end - compareStrLen;
        
         if ((l.end - l.start) < compareStrLen) return false;
        
         for (int i=l.start; i <= loopLen; i++)
             if (srcStr.regionMatches(true, i, compareStr, 0, compareStrLen))
                 return true;
        
         return false;
        
      • CONTAINS

        protected static boolean CONTAINS​(boolean ignoresCase,
                                          byte booleanOperation,
                                          LV l,
                                          java.lang.String srcStr,
                                          java.lang.String[] cmpStrs)
        Implementing a 'contains' is more efficient by performing only one loop iteration. Therefore, the methods that implement some variant of the String.contains method will use this general-purpose contains-testing method.
        Parameters:
        ignoresCase - This is used to signify whether to ignore case when performing the String-comparison operations.
        booleanOperation - This is designed to take one of four values. This method will throw an exception if it does not.
        l - Loop end-point parameter
        srcStr - Any non-null instance of java.lang.String
        cmpStrs - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        The appropriate response based on the inputs for boolean logic.
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
         int count = (booleanOperation == XOR) ? 0 : cmpStrs.length;
        
         cmpStrs = cmpStrs.clone();
        
         for (int i=l.start; i < l.end; i++)
             for (int j=0; j < cmpStrs.length; j++)
                 if (cmpStrs[j] != null)
                     if (srcStr.regionMatches(ignoresCase, i, cmpStrs[j], 0, cmpStrs[j].length()))
                         switch (booleanOperation)
                         {
                             case AND    :   cmpStrs[j]=null;
                                             if (--count == 0)   return true;
                                             else                break;
                             case XOR    :   cmpStrs[j]=null;
                                             if (++count > 1)    return false;
                                             else                break;
                             case OR     :   return true;
                             case NAND   :   return false;
                             default     :   throw new IllegalArgumentException
                                             (CONTAINS_EX.replace("BOOL", "" + booleanOperation));
                         }
        
         switch(booleanOperation)
         {
             case AND    : return false;
             case OR     : return false;
             case XOR    : return count == 1;
             case NAND   : return true;
             default     : throw new IllegalArgumentException
                             (CONTAINS_EX.replace("BOOL", "" + booleanOperation));
         }
        
      • CONTAINS

        protected static boolean CONTAINS​(boolean ignoresCase,
                                          byte booleanOperation,
                                          java.lang.String srcStr,
                                          java.lang.String[] cmpStrs)
        Implementing a 'contains' is more efficient by performing only one loop iteration. Therefore, the methods that implement some variant of the String.contains method will use this general-purpose contains-testing method.
        Parameters:
        ignoresCase - This is used to signify whether to ignore case when performing the String-comparison operations.
        booleanOperation - This is designed to take one of four values. This method will throw an exception if it does not.
        srcStr - Any non-null instance of java.lang.String
        cmpStrs - This is one (or many) java String's, each of which shall be compared to the ending of 'srcStr'.
        Returns:
        The appropriate response based on the inputs for boolean logic.
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
         int count   = (booleanOperation == XOR) ? 0 : cmpStrs.length;
         int len     = srcStr.length();
        
         cmpStrs = cmpStrs.clone();
        
         for (int i=0; i < len; i++)
             for (int j=0; j < cmpStrs.length; j++)
                 if (cmpStrs[j] != null)
                     if (srcStr.regionMatches(ignoresCase, i, cmpStrs[j], 0, cmpStrs[j].length()))
                         switch (booleanOperation)
                         {
                             case AND    :   cmpStrs[j]=null;
                                             if (--count == 0)   return true;
                                             else                break;
                             case XOR    :   cmpStrs[j]=null;
                                             if (++count > 1)    return false;
                                             else                break;
                             case OR     :   return true;
                             case NAND   :   return false;
                             default     :   throw new IllegalArgumentException
                                             (CONTAINS_EX.replace("BOOL", "" + booleanOperation));
                         }
        
         switch(booleanOperation)
         {
             case AND    : return false;
             case OR     : return false;
             case XOR    : return count == 1;
             case NAND   : return true;
             default     : throw new IllegalArgumentException
                             (CONTAINS_EX.replace("BOOL", "" + booleanOperation));
         }