#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 по моей ошибке.