Algorithms

String Algorithms

String validation algorithms are quite common when determining the properties or attributes of the string. The output of a validation algorithm is boolean, that is, true or false.

Validating all-or-nothing properties

Scenario : Find if a given string is UPPERCASE or lowercase

public class CheckStringPropertiesAlgorithm {
   
   public static boolean isUpperCase(String s) {
       return s.chars().allMatch(Character::isUpperCase); 
   }
   public static boolean isLowerCase(String s) {
       return s.chars().allMatch(Character::isLowerCase);
   } 
   public static void main(String[] args) {
       System.out.println(isUpperCase("HELLO"));
       System.out.println(isLowerCase("naiomi"));
       System.out.println(isLowerCase("NAIDOO"));
   }
}

Validating specific properties

Scenario : Check if a string has at least 1 UPPERCASE character, 1 lowercase character and 1 number.

public class Algorithms {
   public static void main(String[] args) {
      System.out.println(isStringComplex("HeLl0"));
      System.out.println(isStringComplex("HeLlo"));
            
   }

   public static boolean isStringComplex(String s) {
      return s.chars().anyMatch(Character::isUpperCase) &&
             s.chars().anyMatch(Character::isLowerCase) &&
             s.chars().anyMatch(Character::isDigit);
   }

}

Normalize string

    public static String normalizeString(String s) {
        return s.toLowerCase().trim().replace(",", "");
    }

    public static void main(String[] args) {
        System.out.println(normalizeString(" T rsf YNSP,2 3"));
    }

Reverse a string

    public static String reverseString(String s) {
        if (s == null || s.isEmpty()) {
            return s;
        }
        StringBuilder reversed = new StringBuilder();

        for (int i = s.length() - 1; i >= 0; i--) {
            reversed.append(s.charAt(i));
        }

        return reversed.toString();
    }

    public static String reverseStringUsingBuiltInMethod(String s) {
        if (s == null || s.isEmpty()) {
            return s;
        }
        StringBuilder stringBuilder = new StringBuilder(s);
        return stringBuilder.reverse().toString();
    }

    public static void main(String[] args) {
        System.out.println(reverseString("Hello"));
        System.out.println(reverseStringUsingBuiltInMethod("Naiomi"));
    }

Leave a Reply

Your email address will not be published. Required fields are marked *