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

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
26.10.2014, 01:13
    #38787433
YamahaR1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Equals барахлит
6o6epYi,

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

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

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

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

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

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

Дак вы где-нибудь выведите оба значения в консоль и посмотрите реально ли они совпадают
...
Рейтинг: 0 / 0
26.10.2014, 12:09
    #38787512
YamahaR1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Equals барахлит
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
26.10.2014, 14:02
    #38787560
6o6epYi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Equals барахлит
YamahaR1,

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


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