Две одинаковые строки не сравниваются [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Две одинаковые строки не сравниваются [дубликат]

Сообщение Anonymous »

Вообще, почему-то, когда я сравниваю две строки, они почему-то не равны. Очень сложно объяснить, как, на мой взгляд, они все же должны быть равны и первое условие должно выполняться.
Скриншот:
Скриншот
Код (Java):

Код: Выделить всё

import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class Main {

public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
String login, password;
// password = scanner.next();

System.out.println("Please enter to System!");
System.out.print("Enter login    : ");
login = scanner.next();
System.out.print("Enter password : ");
password = scanner.next();

MessageDigest digest = MessageDigest.getInstance("SHA-256");

byte[] login_hash = digest.digest(login.getBytes(StandardCharsets.UTF_8));
login = bytesToHex(login_hash);

byte[] password_hash = digest.digest(password.getBytes(StandardCharsets.UTF_8));
// System.out.println(bytesToHex(password_hash));

if ((String)login == "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e") {
System.out.println(login + "\n == \n" + "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e");
System.out.println("Welcome!");
}
if ((String)login != "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e") {
System.out.println(login + "\n != \n" + "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e");
}
}

private static String bytesToHex(byte[] hash) {
StringBuilder hexString = new StringBuilder(2 * hash.length);
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}

}
Я ожидал, что условие, которое будет выполнено первым, попытается преобразовать байт в строку и наоборот.


Подробнее здесь: https://stackoverflow.com/questions/793 ... t-compared
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»