Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765

Equals() и == не работают

27.03.2014, 13:55. Показов 2785. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только начал учить Java и столкнулся с проблемой сравнивания строк (не ссылок на них) и не могу понять где ошибка:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void loadText() {       
        //open
        try {
            InputStream inputstream = openFileInput(FILENAME);
 
            if (inputstream != null) {
                InputStreamReader isr = new InputStreamReader(inputstream);
                BufferedReader reader = new BufferedReader(isr);
                String str;
                StringBuffer buffer = new StringBuffer();
 
                while ((str = reader.readLine()) != null) {
                    buffer.append(str + "\n");
                }
 
                inputstream.close();
                //app_password.setText(buffer.toString());
                pass = buffer.toString(); //---------------- 1 переменная (с ней сравниваю)
            }
        } catch (Throwable t) {
            Toast.makeText(getApplicationContext(),
                    "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
        }
      }
      
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.confirm:
              // TODO Call second activity
            loadText();
 
            EditText text = (EditText) findViewById(R.id.textField);
            String to_compare = text.getText().toString(); //---------------- 2 переменная (получаю из текст. поля)
            Toast.makeText(getApplicationContext(), pass, Toast.LENGTH_SHORT).show();
            if (to_compare.equals(pass)){ //---------------- тут и все проблемы
                text.setText("ok");
                    Intent intent = new Intent(this, Hidden_Activity.class);
                    startActivity(intent);
              break;
        default:
          break;
        }
    }
Зарание спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2014, 13:55
Ответы с готовыми решениями:

Equals()
Почему получается false? И еще, никак не могу понять этот фрагмент. В данном случае вызывается реализация метода equals из Object или...

This:: equals
В ссылке на метод допускается указывать ссылку this. Например, ссылка на метод this:: equals равнозначна лямбда-выражению х -> this....

Equals()
Таким образом, возникают два разных варианта. • Если проверка на равенство реализована в подклассе, правило симметрично- сти требует...

12
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.03.2014, 14:19
Может дело в том, что они не равны?
Попробуйте вывести их на экран перед сравнением.
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.03.2014, 14:30  [ТС]
turbanoff, Выводит "test" - из файла, и я ввожу "test" в поле

Добавлено через 5 минут
Может дело в Android SDK?
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
27.03.2014, 14:58
там перевод строки добавляется, как они могут быть равны после этого?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.03.2014, 15:12
Выведите еще длину каждой строки
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.03.2014, 15:24  [ТС]
turbanoff, А конкретнее?
0
10 / 10 / 1
Регистрация: 25.03.2014
Сообщений: 19
27.03.2014, 15:33
попробуйте
Java
1
to_compare.replaceAll("\n|\r\n", "");
или так
Java
1
replaceAll("\s", " ");
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.03.2014, 15:46  [ТС]
respondent, На /s ругается, и 1 способ не работает
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
27.03.2014, 15:50
дубль 2
вопрос: в чем смысл добавлять тут перевод строки?
Java
1
buffer.append(str + "\n");
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.03.2014, 16:12  [ТС]
verylazy, Без этого скрипт не достает текст из файла
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
27.03.2014, 16:18
Он его уже достал из файла, зачем еще дописывать перевод строки?
1
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.03.2014, 16:28
illya05, куда уж конкретнее. Чтобы определить длину строки, надо вызвать метод length().
1
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.03.2014, 17:06  [ТС]
Java
1
Toast.makeText(getApplicationContext(), buffer, Toast.LENGTH_SHORT).show();
Дает пустую строку

Добавлено через 35 минут
Всем спасибо! Разобрался!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2014, 17:06
Помогаю со студенческими работами здесь

Отличие equals от (==)
Почему когда я и использую оператор сравнения для строк (==) он может не правильно работать? Но если я использую s1.equals(s2), тогда все...

Замена Ё на Е и Equals
Всем добрый день. Возможно тема уже поднималась но ответ на свой вопрос найти не смог. А состоит он в следующем: есть строка текста. В ней...

string.equals() и ==
String s1=new String("aaa"); String s2=new String("aaa"); if (s1==s2) System.out.print("true"); else...

Equals() vs compareTo()
В учебнике, который я сейчас читаю встречаются два разных метода, используемых для одного и того же действия. Например, способ задания...

Метод equals
Уважаемые коллеги,прошу прощения за глупый вопрос Не так давно изучаю JAVA, сломал мозг вот на чем: Постоянно сталкиваюсь вот с такой...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru