Ваша проблема сравнения строк очень хорошо объяснена другими, поэтому я не буду ее переписывать.Кроме этого ...
В вашем случае, , если ваши названия месяцев постоянны , будет лучше , чтобы использовать Map<String,Integer>
названий месяцев и значенийили Enum
с названиями месяцев.Он пропустит ваши длинные условия if...else..if...else
.
Пример перечисления:
public enum Month {
Jan,
Feb,
Mar,
Apr,
// ...
Dec
}
public int toMonthInt(String input) {
return Month.valueOf(input).ordinal() + 1; // +1 because you want Month value to start with 1.
}
Пример карты:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Jan", 1);
map.put("Feb", 2);
map.put("Mar", 3);
map.put("Apr", 4);
// ...
map.put("Dec", 12);
System.out.println(map.get("Jan"));