powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Equals барахлит
7 сообщений из 7, страница 1 из 1
Equals барахлит
    #38787415
6o6epYi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребята записал имя пользователя на файле и так оставил, потом сравниваю две строки

System.getProperty("user.name");
и
То что написал на файле если посмотреть своими глазами то строки одинаковы но что же происходит,
считываю ту же самую строку с файла и как на зло возвращает "FALSE";
Помогите что делать.

Код: 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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test1 {

    public Test1() {
    }

    public static void main(String[] args) {
        
        System.out.println("utente cambiato?" + "\n" + sameUSERS());
        writeLastUser(getUserFile(), getCurrUser());
    }

    private static boolean sameUSERS() {
        return myEQUALS(getCurrUser(), readLastUser());
    }

    private static String getCurrDir() {
        return System.getProperty("user.dir");
    }

    private static String getCurrUser() {
        return System.getProperty("user.name");
    }

    private static void writeLastUser(File f, String s) {
        BufferedWriter writeSTR;
        try {
            if (!f.exists()) {
                f.createNewFile();
            }
            writeSTR = new BufferedWriter(new FileWriter(f, false));
            writeSTR.write(s);
            writeSTR.close();
        } catch (IOException ex) {
            System.err.println("" + ex.getMessage());
        }
    }

    private static String readLastUser() {
        String s, string = null;
        BufferedReader readSTR;
        try {
            readSTR = new BufferedReader(new FileReader(getUserFile()));
            while ((s = readSTR.readLine()) != null) {
                string = s;
            }
            readSTR.close();
        } catch (IOException ex) {
            System.err.println("" + ex.getMessage());
        }
        return string;
    }

    private static File getUserFile() {
        return new File(getCurrDir(), "userSTR.info");
    }

    public static boolean myEQUALS(String a, String b) {
        if (a.length() == b.length()) {
            for (int i = 0; i < a.length(); i++) {
                return a.charAt(i) == b.charAt(i);
            }
        }
        return false;
    }
  
}
...
Рейтинг: 0 / 0
Equals барахлит
    #38787433
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6o6epYi,

Не понял, почему вы не используете дефолтный equals String класса для сравнения двух строк ?
...
Рейтинг: 0 / 0
Equals барахлит
    #38787454
6o6epYi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YamahaR16o6epYi,

Не понял, почему вы не используете дефолтный equals String класса для сравнения двух строк ?

Потому то даже дефолтный не equals String не дает мне true, думал если сделаю свой метод то все заработает, но увы, как не крути что-то я не знаю, потому не получается мне при сравнении двух одинаковых строк получить false - то есть что две строки являются одинаковыми.
...
Рейтинг: 0 / 0
Equals барахлит
    #38787456
6o6epYi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
6o6epYiYamahaR16o6epYi,

Не понял, почему вы не используете дефолтный equals String класса для сравнения двух строк ?

Потому то даже дефолтный не equals String не дает мне true, думал если сделаю свой метод то все заработает, но увы, как не крути что-то я не знаю, потому не получается мне при сравнении двух одинаковых строк получить false - то есть что две строки являются одинаковыми.

Подозреваю что может считываю данные как то не так как надо, но не знаю что надо изменить.
...
Рейтинг: 0 / 0
Equals барахлит
    #38787511
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
6o6epYi,

Дак вы где-нибудь выведите оба значения в консоль и посмотрите реально ли они совпадают
...
Рейтинг: 0 / 0
Equals барахлит
    #38787512
YamahaR1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6o6epYi,
Можете изменить метод и посмотреть что у вас тут будет?

Код: java
1.
2.
3.
4.
5.
6.
    private static boolean sameUSERS() {
        System.out.println("Cur user: " + getCurrUser());
        System.out.println("Read user: " + readLastUser());

        return getCurrUser().equals(readLastUser());
    }
...
Рейтинг: 0 / 0
Equals барахлит
    #38787560
6o6epYi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YamahaR1,

Спасибо большое, похоже у меня разворовываться "ИНДУИЗМ".
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Equals барахлит
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]