public static String getCorrection(String text) {

    // All uppercase normalization HONG KONG => Hong Kong
    String noPunc = text.replaceAll("[^A-Z0-9]*", "");

    if (StringUtils.isAllUpperCase(noPunc) && noPunc.length() > 3) {
      char[] letters = text.toLowerCase().toCharArray();
      for (int i = 0; i < letters.length; i++) {
        if (i == 0 || !Character.isLetter(letters[i - 1]) && Character.isLetter(letters[i])) {
          letters[i] = Character.toUpperCase(letters[i]);
        }
      }
      return new String(letters);
    }

    // Spell check
    if (correctionCache.get(text) != null) {
      return String.valueOf(correctionCache.get(text));
    } else {
      if (caching) {
        String correction = getGoogleCorrection(text);
        correctionCache.put(text, correction);
        return correction;
      }
    }

    return text;
  }
  public static void main(String[] args) throws IOException {

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Введите текст и программа даст инфомрацию о тексте: ");
    String text = reader.readLine();

    if (StringUtils.isAllUpperCase(text)) System.out.println("В тексте только заглавные буквы");

    if (StringUtils.isAllLowerCase(text)) System.out.println("В тексте только строчные буквы");

    if (StringUtils.isNumeric(text)) System.out.println("Тест состоит из цифр");

    String tempReverse = StringUtils.reverse(text);
    System.out.println("Перевернутый текст: " + tempReverse);

    int length = StringUtils.length(text);
    System.out.println("Длина текста: " + length);

    if (length >= 5) {
      String tempRight = StringUtils.right(text, 5);
      System.out.println("Первые 5 символов текста: " + tempRight);
    } else {
      System.out.println("Длина текста менее 5 символов");
    }

    reader.close();
  }
 @Override
 public boolean evaluate(final String object) {
   return StringUtils.isAllUpperCase(object);
 }