#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. Вы не проверяете, является ли первый символ цифрой.