Bạn sẽ cân nhắc điều gì hiệu quả hơn?Giá trị Java Enum Hiệu quả của sản phẩm
Việc sử dụng 'các ngày trong tuần' chỉ là một ví dụ:
public enum WeekDay {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}
Vòng qua và xác minh chuỗi ngày đầu tiên:
public void parseString(String line) {
String[] tokens = line.split();
String day = tokens[1]; // day 'should' always be a weekday
if (isValidWeekDay(day)) {
WeekDay weekDay = WeekDay.valueOf(day); // won't throw exception
...
} else {
throw new InvalidWeekDayException(day); // subclass of RuntimeException
}
}
private boolean isValidWeekDay(String day) {
for (WeekDay weekDay : WeekDay.values()) {
if(weekDay.toString().equals(day))
return true;
}
return false;
}
Hoặc vì trong 99,99% các trường hợp, ngày sẽ được chính xác:
public void parseString(String line) {
String[] tokens = line.split();
String day = tokens[1]; // day 'should' always be a weekday
try {
WeekDay weekDay = WeekDay.valueOf(day); // might throw exception
...
} catch (IllegalArgumentException e) {
throw new InvalidWeekDayException(day, e);
}
}
Cập nhật:
Để làm rõ, chuỗi đầu vào sẽ đến từ ứng dụng khách chứ không phải người dùng. Nói cách khác, nó sẽ là một lỗi để nhận được một ngày làm việc không trong ví dụ này.
Nghe có vẻ giống như một câu trả lời khéo léo, nhưng tôi sẽ xem xét câu trả lời nhanh nhất khi tôi định dạng nó là hiệu quả nhất. –
Chuỗi có xuất phát từ thứ gì đó mà người dùng nhập vào hay tất cả đều đến từ nội bộ? – DHall
Tôi sẽ sử dụng thay vào đó, nếu bạn thực sự đang thực hiện một số ngày trong tuần: http://joda-time.sourceforge.net/field.html#dayOfWeek – NimChimpsky