Перебор массива char text1[]
Работает ли обычный for? Например поиск есть ли заглавные буквы.
public static boolean ABC( char text[]){
for( char i="A"; i< text.length;i++ ){
if(i>=65 && i<=90 ){
System.out.println(i);
}
}
return true;
}
Ответы (2 шт):
Автор решения: Павел Ериков
→ Ссылка
Вот пример кода с комментариями:
public static boolean ABC(char text[]){
//Идем по всей строке text обращаясь по индексу
for(int i = 0; i < text.length; i++){
//Если i-тый символ text является заглавной буквой английского
//алфавита, то мы сразу возвращаем true
if(text[i] >= 'A' && text[i] <= 'Z'){
return true;
}
}
//Если мы не вышли из функции до этого момента
//то заглавных букв найдено не было
return false;
}
Я думаю сразу можно увидеть в чем у вас ошибки. И да перед return true если вам нужно, можете вставить вывод чего угодно. А в место 'A' и 'Z' вы можете написать 65 и 90 соответственно, но я думаю так намного понятней.
ДОПОЛНЕНИЕ:
Небольшое улучшение кода. Теперь он работает на символ любого языка:
public static boolean ABC(char text[]){
for(int i = 0; i < text.length; i++){
//Воспользуемся функцией Character.isUpperCase, которая
//возвращает true если символ в верхнем регистре (заглавная)
//иначе false
if(Character.isUpperCase(text[i])){
return true;
}
}
return false;
}
Автор решения: Agzam4
Спасибо Павлу Ерикову за совет по использованию
→ Ссылка
Спасибо Павлу Ерикову за совет по использованию Character.isUpperCase(c) , вот код:
public static void main(String[] args) {
// Проверка
System.out.println(ABC("Привет мир".toCharArray()));
System.out.println(ABC("привет мир".toCharArray()));
System.out.println(ABC("Hello word".toCharArray()));
System.out.println(ABC("hello Word".toCharArray()));
System.out.println(ABC("hello word".toCharArray()));
}
public static boolean ABC(char text[]){
for (char c : text)
if(Character.isUpperCase(c))
return true;
return false;
}