оператор if не выполняется

#java #if-statement #for-loop

#java #оператор if #for-цикл

Вопрос:

 for(int i=0;i<number.length();i  ){
    if(number.charAt(i)==0){
      nums[i]=11;
      System.out.println("bob");
    }else{
    nums[i]=number.charAt(i);
  }
  }
  

Я пытаюсь получить все значения 0 равными 11 в массиве чисел и печатать bob каждый раз, когда он это делает, но по какой-то причине первый оператор if, похоже, не выполняется, даже когда charAt(i) равен 0. Не мог бы кто-нибудь объяснить, что не так?

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

1. Хорошо, итак, я понимаю, что мне нужно поставить ‘0’, но теперь я хочу, чтобы этот элемент nums был равен 11, а nums — это массив символов, но всякий раз, когда я ставлю nums [i] = ’11’; Я получаю незакрытую символьную буквенную ошибку

Ответ №1:

Если это строка, вы не имеете в виду if (number.charAt(i) == '0') ?

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

1. О, чувак, спасибо, я буквально ломал голову в течение 3 часов из-за этой ошибки

2. хм, итак, если бы я поставил nums[i]=’11’, сделал бы этот элемент nums равным 11?

3. Нет, строки неизменяемы и НЕ МОГУТ быть отредактированы, вы должны создать новую строку как String newString = nums[0] «11» nums.substring(2);

4. Но nums не является строковым массивом, это массив символов.

5. О, в этом случае вы можете выполнять только nums [1] = ‘1’, у вас может быть только один символ на слот, поэтому, если вы хотите «11», вам нужно изменить nums [1] на ‘1’ и nums [2] на ‘1’

Ответ №2:

Вы должны спросить:

 if (number.charAt(i)=='0')
  

Потому что число 0 отличается от символа ‘0’, и вас интересует символ.

Ответ №3:

попробуйте: if(number.charAt(i)==’0′) . вы сравнили int и char по моей ошибке.