Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java
Когда вы проверяете (сравниваете) два объекта с помощью оператора ==
, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true
, в противном случае false
. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals
.
equals
- фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.
Example:
stringObjectOne.equals(stringObjectTwo);
Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.
Давайте посмотрим:
String one = "HELLO";
String two = "HELLO";
String three = new String("HELLO");
String four = "hello";
one == two; // TRUE
one == three; // FALSE
one == four; // FALSE
one.equals(two); // TRUE
one.equals(three); // TRUE
one.equals(four); // FALSE
one.equalsIgnoreCase(four); // TRUE
Одна проблема здесь:
while ( final3 == final1 && final3 == final2);
Должно быть
while ( final3 == final1 || final3 == final2);
Условие должно быть ИЛИ, а не И.
При этом я предполагаю, что это для класса, который вы посещаете. Я дам вам несколько советов. Все это может быть сделано намного проще и понятнее с помощью знаний, которые вы уже продемонстрировали в приведенном выше коде. Вам просто нужно больше думать о том, как можно более эффективно использовать циклы и классы для достижения своей цели.
Следуйте этой отладочной документации в Eclipse здесь .
Шаг 1 Добавьте точки останова в свой код.
Шаг 2 Отладка как приложение java и проверка по одному
Я бы порекомендовал вам класс Course
.
public class Course {
private String name;
private int capacity;
private int enrollment;
private Date finalExamDate;
// You add the rest.
}
Вы можете добавить CourseCatalog
, который хранит List<Course>
экземпляров курса.
Еще не слишком скоро узнать о JUnit . Держите свои классы и тестовый код отдельно.