Помогите проверка аргумента команды на равенство с элементами массива

Статус
Закрыто для дальнейших ответов.

Zemf4you

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
zemf4you
Нужно сделать проверку эквивалентности args[1] на элементы массива rules. Оно, по сути, работает, но если они не равны, то вылетает ошибка null. Проверка на длину rules почему-то не помогает
Код:
String rules[] = {"1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7"};
   
           for (int i = 0; !args[1].startsWith(rules[i]) && rules.length != i; i++) {
               sender.sendMessage("args[1] не совпадает c rules[" + i + "]");
           }
 
Код:
String[] rules= {"1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7"};
boolean b = false;
for (String r : rules) {
    if (r.equals(args[1])) {
        b = true;
        break;
    }
}
Теперь логическое значение переменной b будет отвечать на твой вопрос.
 
Ее, клуб изобретателей велосипедов!
Код:
List rules = Arrays.asList("1.1", "1.2");
if(!rules.contains(args[1]) {
 System.out.print("args не содержит что-то там");
}
 
возникла новая проблема.
Код:
String rules[] = {"1.1", "1.2", "1.3", "1.5", "1.6", "1.7", "2.1", "2.2", "2.3", "2.4", "2.5", "3.2", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"};
           
           for (String r : rules) {
               if (r.equals(args[1])) {
           
                   sender.sendMessage("true");   
                       
               } else {
                   sender.sendMessage("§cНеверный пункт правила!");
                   return false;
               }
           }

если в args[1] писать 1.1, то выводит true и то, что после else. Коли же писать что-то другое (даже то, что есть в массиве), то выводит только else.
 
Ее, клуб изобретателей велосипедов!
Код:
List rules = Arrays.asList("1.1", "1.2");
if(!rules.contains(args[1]) {
 System.out.print("args не содержит что-то там");
}
кхе-кхе. System.out.print?
А ещё eclipse не принимает ни List, ни Arrays.
 
возникла новая проблема.
Код:
String rules[] = {"1.1", "1.2", "1.3", "1.5", "1.6", "1.7", "2.1", "2.2", "2.3", "2.4", "2.5", "3.2", "3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"};
         
           for (String r : rules) {
               if (r.equals(args[1])) {
         
                   sender.sendMessage("true"); 
                     
               } else {
                   sender.sendMessage("§cНеверный пункт правила!");
                   return false;
               }
           }

если в args[1] писать 1.1, то выводит true и то, что после else. Коли же писать что-то другое (даже то, что есть в массиве), то выводит только else.
Омг, тебе цикл проверяет весь массив, а ты при каждой проверке else делаешь, после цикла проверяй:
Код:
if (b) {
//TRUE
} else {
//FALSE
}
Именно для этого и была введена boolean переменная, а ты ее убрал...
 
Омг, тебе цикл проверяет весь массив, а ты при каждой проверке else делаешь, после цикла проверяй:
Код:
if (b) {
//TRUE
} else {
//FALSE
}
Именно для этого и была введена boolean переменная, а ты ее убрал...
Ну со списком гораздо проще, без костыляний с переменными.
 
Список это и есть костыль, массив быстрее обрабатывать

Ага, а еще быстрее будет переписать ядро сервера на ассемблере - прямая работа с процессором ускорит обработку данных
 

Але, гараж, List это практически то же самое, что и массив, только с кучей удобных методов и фишек. Даже название самого распространенного класса-имплементера, ArrayList, как бы намекает, не?
 
Але, гараж, List это практически то же самое, что и массив, только с кучей удобных методов и фишек. Даже название самого распространенного класса-имплементера, ArrayList, как бы намекает, не?
Итерация массива в любом случае быстрее. ТС задал список правил через массив, поэтому я и написал через массив. Если получать с конфига например, то естественно удобнее использовать лист.
 
Итерация массива в любом случае быстрее. ТС задал список правил через массив, поэтому я и написал через массив. Если получать с конфига например, то естественно удобнее использовать лист.

Неа, итерация LinkedList будет все-таки быстрее. Да и волшебного супер-пупер прироста скорости на 7 элементах не будет

Короче, с любого профиля использование List'а лучше и универсальнее
 
Неа, итерация LinkedList будет все-таки быстрее. Да и волшебного супер-пупер прироста скорости на 7 элементах не будет

Короче, с любого профиля использование List'а лучше и универсальнее
Смотря как задан список правил.
@Zemf4you тему закрывай.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх