Как исключить все сценарии, в которых в строке отсутствует содержимое? Например : «» vs «» И проверка того, является ли данное слово изограммой

#java #string

Вопрос:

 public class isogram {
    public static boolean  isIsogram(String str) {
        // ...
      
      boolean flag = false;
      String st = str.toLowerCase();
      String checker = String.valueOf(st.charAt(0));
      
      // check if the string is empty and return false
      if (st == ""){
        return flag;
      }
      
      // for each char in the string, check if it lies in the a-z range 
      // and that it obeys the isogram conition (no repetitions)
      for(int i=1; i<st.length()-1 ; i  ){
        
        boolean cond_check = !checker.contains(String.valueOf(st.charAt(i)));
        
        if (st.charAt(i) >= 'a' amp;amp; st.charAt(i) <= 'z' amp;amp; cond_check ){
          flag = true;
        }
        else{
          flag = false;
          break;
        }
        
        checker = checker   st.charAt(i);

      }
      
      return flag;
    } 
}
 

Я пытаюсь проверить, является ли данное слово изограммой (без повторов и цифр). Не в состоянии понять, в чем проблема. А также, устраняя пустую строку, я думаю, что должен стараться избегать «» (пустые строки с пробелами, потому что они считаются символами). Как это сделать?

Комментарии:

1. Вы можете использовать обрезку , чтобы удалить пробелы и проверить длину строки вместо содержимого.

2. .isBlank() (Java 11 или более поздняя версия)

3. Спасибо. Это сработало. Я думаю, что trim() также является основой для isBlank (). Все еще не в состоянии пройти тестовые тесты. Есть какие-нибудь предложения по этому поводу?

4. Вы не проверяете, является ли первый символ цифрой.