วิธีใช้งาน
... ... 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; } }
ไม่มีความคิดเห็น:
แสดงความคิดเห็น