วิธีใช้งาน
...
...
List<Days> days = new ArrayList<Days>();
days.add(Days.SUNDAY);
days.add(Days.MONDAY);
days.add(Days.WEDNESDAY);
System.out.println(Days.SUNDAY);
// => SUNDAY
System.out.println(Days.SUNDAY.getShortName());
// => อา.
System.out.println(Days.SUNDAY.getFullName());
// => อาทิตย์
System.out.println(Days.indexOfValue(Days.SUNDAY));
// => 0
System.out.println(Days.stringToList("SUNDAY,MONDAY,WEDNESDAY", ","));
// => [{SUNDAY, MONDAY, WEDNESDAY}]
System.out.println(Days.listToString(days, ","));
// => "SUNDAY,MONDAY,WEDNESDAY"
System.out.println(Days.valueOfIndex(6));
// => FRIDAY
System.out.println(Days.stringToArrayInteger("SUNDAY,MONDAY,WEDNESDAY", ","));
// => [0, 1, 3]
...
...
Code
package com.blogspot.na5cent.library;
import com.google.common.base.Joiner;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author redcrow
*/
//modifier จะขึ้นต้นด้วย enum
public enum Days {
//(1)
//กำหนดค่าให้กับ Days ผ่าน Constructor
SUNDAY("อา.", "อาทิตย์"),
MONDAY("จ.", "จันทร์"),
TUESDAY("อ.", "อังคาร"),
WEDNESDAY("พ.", "พุธ"),
THURSDAY("พฤ.", "พฤหัสบดี"),
FRIDAY("ศ.", "ศุกร์"),
SATURDAY("ส.", "เสาร์");
//log
static final Logger LOG = LoggerFactory.getLogger(Days.class);
private String shortName;
private String fullName;
//สร้าง Constructor เพื่อกำหนดค่า ที่ (1)
private Days(String shortName, String fullName) {
this.shortName = shortName;
this.fullName = fullName;
}
public String getShortName() {
return shortName;
}
public String getFullName() {
return fullName;
}
//แปลง String ไปเป็น List ของ Days
//เช่น "SUNDAY,MONDAY,WEDNESDAY" => [{SUNDAY, MONDAY, WEDNESDAY}]
public static List<Days> stringToList(String daysString, String splitor) {
List<Days> daylist = new ArrayList<Days>();
//ใช้ StringUtils ของ Apache commons มาช่วยแยก String เนื่องจากถ้าเราใช้ split ธรรมดา มันอาจจะได้ String ว่างมาด้วย เช่น "One,Two,Three," => "One", "Two", "Three", ""
String[] days = StringUtils.split(daysString, splitor);
for (String day : days) {
try {
daylist.add(Days.valueOf(day));
} catch (Exception e) {
LOG.debug("error {}", e);
}
}
return daylist;
}
//แปลงจาก String ไปเป็น Array of Integer "SUNDAY,MONDAY,WEDNESDAY" => [0, 1, 3]
public static Integer[] stringToArrayInteger(String daysString, String splitor)
{
String[] days = StringUtils.split(daysString, splitor);
Integer[] dayArray = new Integer[days.length];
for (int i = 0; i < days.length; i++) {
dayArray[i] = indexOfValue(days[i]);
}
return dayArray;
}
//แปลงจาก List ไปเป็น String[{SUNDAY, MONDAY, WEDNESDAY}] => "SUNDAY,MONDAY,WEDNESDAY"
public static String listToString(List<Days> daysList, String joiner) {
String result = Joiner.on(joiner).join(daysList);
LOG.debug("list to string {}", result);
return result;
}
public static Days valueOfIndex(int index) {
//คือ get ค่าที่ (1) ข้างบนสุด
//ในตัวแปรแบบ Enum นั้นตัวแปรทั้งหมดจะถูกมองเป็น Array ตัวแรกคือ Array 0
Days days = Days.values()[index];
LOG.debug("day {}", days);
return days;
}
//แปลงจาก enum ไปเป็น index
public static int indexOfValue(Days day) {
for (int i = 0; i < Days.values().length; i++) {
if (Days.values()[i].equals(day)) {
return i;
}
}
return -1;
}
//แปลงจาก String ไปเป็น index
public static int indexOfValue(String day) {
for (int i = 0; i < Days.values().length; i++) {
if (Days.values()[i].toString().equals(day)) {
return i;
}
}
return -1;
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น