Строки в обработке

#string #list #iteration #processing

#строка #Список #итерация #обработка

Вопрос:

     String d = "word";
    for (int j = 0; j < 22; j  ) {
       String item = inventory.get(j);
       textSize(25);
       fill(255,0,255);
         if (item != d){
         text(item,w,h);
       }
    }
  

Он не распознает d и все еще помещает его вместе с текстом.

Это обработка. элемент — это список строк, по которому я пытаюсь выполнить итерацию. Я хочу, чтобы все слова в списке, за исключением d, которое является «word», отображались в виде текста на экране.

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

1. Было бы полезно, если бы вы могли прояснить проблему. «Не распознает d?» d не распознается как переменная или содержимое переменной не распознается? И это C #? Какая предполагаемая функция кода? Найдите время, чтобы немного объяснить, и вы получите лучшие ответы.

2. Круто, я попытался отредактировать его, чтобы добавить немного больше деталей.

3. Что это за язык? И что такое «инвентаризация»? «элемент», похоже, является строкой, а не списком строк.

4. Язык называется processing. Это как Java и C , упс, я виноват. Инвентаризация списка строк; инвентаризация — это список строк. элемент находится в инвентаре.получите(j) j-ю вещь в инвентаре.

5. Ага, я прочитал это как «обработка строк» 🙂 Тогда я не знаю. Но, может быть, вы могли бы посмотреть, есть ли функция сравнения строк, которую вы могли бы использовать вместо != ?

Ответ №1:

вместо этого попробуйте использовать whit !d.equals(item) . лучше сравнивать классы с таким методом.

С уважением Хосе

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

1. Это не просто лучше, это совершенно другой вид сравнения. != сравнивает, указывают ли две ссылки на один и тот же объект или нет, и .equals сравнивает содержимое двух ссылок. Я чувствую, что это должно быть разъяснено, чтобы эта ошибка не повторилась в будущем.