Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,003
Завершенные тесты: 2
#1

Одинаковые строки не равны

09.10.2016, 12:21. Просмотров 866. Ответов 5
Метки нет (Все метки)

Вот такой участок кода
Java
1
2
3
Log.w("status1", resource.getStatus());
Log.w("status2", Resource.STATUS_DEFAULT);
Log.w("status3", "" + (Resource.STATUS_DEFAULT == resource.getStatus()));
выдает вот такие результаты (копипаст)
W/status1: statusDefault
W/status2: statusDefault
W/status3: false
Почему нет равенства?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2016, 12:21
Ответы с готовыми решениями:

Одинаковые строки не равны
имеется строка в текстовом файле m.txt (строка = '1') имеется объект, в который эта строка...

Одинаковые строки не равны друг другу (QFile, QString)
Доброго времени суток. Столкнулся с проблемой при работе с файлами. Проблема заключается в...

Как могут быть две одинаковые строки не равны!?
Здравствуйте. Я наверно сегодня уже переработал потому, что творятся странные вещи. ...

Две одинаковые строки не распознаются, как одинаковые. Такое возможно? Скриншот дебага прилагается.
Пишу программу, начал тестировать, проходить всё пошагово (пишущийся в данный момент функционал). В...

Определить, действительно ли элементы строки k матрицы А (n,m) равны элементам 1-ой строки
Очень нужно решить следующую задачу: Определить, действительно ли все элементы строки k матрицы...

5
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
09.10.2016, 12:54 #2
Лучший ответ Сообщение было отмечено TanaTiX как решение

Решение

Судя по всему STATUS_DEFAULT стринг и функция getStatus() тоже возвращает стринг.
Стринги в джаве сравниваются с помощью функции equals:
Java
1
Resource.STATUS_DEFAULT.equals(resource.getStatus());
Вы же в своем примере сравниваете адреса переменных, которые разные.

Добавлено через 19 минут
Хотя я сейчас подумал, если Resource это ваш класс, переменная STATUS_DEFAULT это static String -поле этого класса и функция getStatus() возвращает STATUS_DEFAULT адрес должен быть один и тот же.
1
TanaTiX
Модератор
2796 / 1650 / 168
Регистрация: 19.02.2011
Сообщений: 6,003
Завершенные тесты: 2
09.10.2016, 13:57  [ТС] #3
fraley, нет, там значения пересоздаются через БД. Проблема решена, спасибо.
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
10.10.2016, 00:16 #4
попробуйте использовать equals вместо == и добавьте trim() в конце

Resource.STATUS_DEFAULT.trim().equals(resource.getStatus().trim())
0
Rabbit_msk
1 / 1 / 1
Регистрация: 11.08.2016
Сообщений: 16
10.10.2016, 11:24 #5
Вы сравниваете ссылки на переменные, а не их значения.
Используйте equals()
0
Pablito
10.10.2016, 11:26     Одинаковые строки не равны
  #6

Не по теме:

кто еще не отписался про equals - все сюда

0
10.10.2016, 11:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2016, 11:26
Привет! Вот еще темы с ответами:

Удалить строки, где данные в столбцах C,D,E на i равны данным этих же столцов из строки i-1
Здравствуйте. Нужен макрос, выполняющих определенные действия (см. ниже). С VBA сталкивалась один...

Определить длину строки,удалить из строки все символы, которые равны заданному
Доброго времени суток уважаемые форумчане. Помогите пожалуйста с написанием кода для данной задачи...

Что нужно добавить в код чтобы текст "расстояния равны" появлялся если задать одинаковые точки
что нужно добавить в код чтобы текст "расстояния равны" появлялся если задать одинаковые точки ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru