Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
KeyGen
383 / 290 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
#1

Сравнение двух строк - Android

04.12.2014, 21:14. Просмотров 1135. Ответов 8
Метки нет (Все метки)

Подскажите сравниваю две строки получаю отрицательный результат на одинаковых строка. Как так может быть?

Java
1
2
3
4
5
6
7
8
    ParseObject user = scoreList.get(0);
    if (user.get("password").toString() == passMd5) {
        Log.e("result", "connect");
    } else {
        Log.e("pass get", user.get("password").toString());
        Log.e("pass md5", passMd5);
        Log.e("result", "pass incorrect");
    }
результат:
Код
5363-5363/me.pinxter.massenger E/pass get : 81dc9bdb52d04dc20036dbd8313ed055
5363-5363/me.pinxter.massenger E/pass md5 : 81dc9bdb52d04dc20036dbd8313ed055
5363-5363/me.pinxter.massenger E/result : pass incorrect
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
unknown_sb
6 / 6 / 2
Регистрация: 25.11.2013
Сообщений: 44
04.12.2014, 21:33     Сравнение двух строк #2
Строки сравниваются так:
Java
1
2
3
4
5
6
7
8
ParseObject user = scoreList.get(0);
                if (user.get("password").toString().equals(passMd5)) {
                    Log.e("result", "connect");
                } else {
                    Log.e("pass get", user.get("password").toString());
                    Log.e("pass md5", passMd5);
                    Log.e("result", "pass incorrect");
                }
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
04.12.2014, 22:45     Сравнение двух строк #3
unknown_sb + 1

Тоже как-то долго я пытался понять, что не так

Правда опять же загадка, почему позитивный результат сравнения описывается нулём (ложью)?

Или почему константы
VISIBLE это 0
зато INVISIBLE = 4

Где логика - ХЗ.
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
05.12.2014, 00:50     Сравнение двух строк #4
Цитата Сообщение от Armagedo Посмотреть сообщение
Правда опять же загадка, почему позитивный результат сравнения описывается нулём (ложью)?
Где это вы такое нашли?
Цитата Сообщение от Armagedo Посмотреть сообщение
Или почему константы
VISIBLE это 0
зато INVISIBLE = 4
Потому что это константы) Они не должны быть как то логически подобраны, иногда бывают и 23536 и 55547 - зачем вообще писать эти значения в ручную? Читается то лучше, когда текстом написано.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
05.12.2014, 10:16     Сравнение двух строк #5
Spelcrawler, прошу пардону у присутствующих, попутал с compareTo, я её частенько пользую

По поводу констант вопрос был скорее риторический.
Правда, в чем сакральный смысл именно 0, 4, 8 для констант, которые используются только в одном единственном методе...я не уловил.
Ну, то такое

Кстати понял, что где-то чья-то логика захромала, когда нужно было сделать чередование в списке - чет/выкл, нечет/вкл, а схема setVisibility(position%2) не сработала.

Вообщем, совет, как всегда, один RTFM
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
05.12.2014, 10:20     Сравнение двух строк #6
Armagedo, а какие бы вы написали значения, если переменная может быть: visibe, invisible, gone? По-моему тут никак логически правильно их не сопоставить.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
05.12.2014, 10:35     Сравнение двух строк #7
1 (true) ,
0 (false),
-1 (Zed's dead, baby, Zed's dead)

Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
05.12.2014, 10:41     Сравнение двух строк #8
Armagedo, отрицательные числа в таких ситуациях используют для обозначения неопределенности значения. Не именно в данном конкретном случае (здесь неопределенности быть не может), а в общем. Даже во многих исходниках от гугла есть проверки вида:
Java
1
2
3
if(SOME_CONST < 0){
//exception
}
Так что тут такое дело, что другое, более общее, правило мешает сделать так как логически было бы действительно правильнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2014, 10:46     Сравнение двух строк
Еще ссылки по теме:

Как сделать сравнение с верным ответом в Android Studio Android
Android Алгоритм сравнение двух списков list, для синхронизации таблицы
Не работает сравнение String с пустой строкой Android
Android Не работает сравнение String через ==

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

Или воспользуйтесь поиском по форуму:
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
05.12.2014, 10:46     Сравнение двух строк #9
Та не, тут ответ надо давать типо "Вот когда напишешь свой Андроуд, тогда и будешь свои значения разадавать. А пока жуй, шо дают. Причем бесплатно"

Удачи
Yandex
Объявления
05.12.2014, 10:46     Сравнение двух строк
Ответ Создать тему
Опции темы

Текущее время: 06:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru