我的 Java 教學概要範例 設計目標概述
我的教材說明頁 執行結果JavaDocorg.wisdomfish.tcm |
Method Summary | |
---|---|
static java.lang.String | getAcupuncturePointName(java.lang.String keyID, int numID) 查詢指定經絡中特定編號的腧穴中文名稱 |
static com.google.common.collect.ImmutableList<java.lang.String> | getAcupuncturePoints(java.lang.String keyID) 取得指定經絡腧的腧穴中文名稱清單 |
static int | getAcupuncturePointsSize(java.lang.String keyID) 查詢指定經絡的腧穴總數值 |
static com.google.common.collect.ImmutableSet<java.lang.String> | getMeridianIds() 取得經絡代碼清單 |
static java.lang.String | getMeridianName(java.lang.String keyID) 查詢指定經絡代碼之中文名稱. |
static void | main(java.lang.String[] args) |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
getMeridianIds
public static com.google.common.collect.ImmutableSet<java.lang.String> getMeridianIds()
- 取得經絡代碼清單
- Returns:
- 經絡代碼清單
getMeridianName
public static java.lang.String getMeridianName(java.lang.String keyID)
- 查詢指定經絡代碼之中文名稱.
- Parameters:
keyID
- 經絡代碼- Returns:
- 經絡代碼中文名稱
getAcupuncturePointsSize
public static int getAcupuncturePointsSize(java.lang.String keyID)
- 查詢指定經絡的腧穴總數值
- Parameters:
keyID
- 經絡代碼- Returns:
- 腧穴總數數值
getAcupuncturePoints
public static com.google.common.collect.ImmutableList<java.lang.String> getAcupuncturePoints(java.lang.String keyID)
- 取得指定經絡腧的腧穴中文名稱清單
- Parameters:
keyID
- 經絡代碼- Returns:
- 腧穴中文名稱清單
getAcupuncturePointName
public static java.lang.String getAcupuncturePointName(java.lang.String keyID, int numID)
- 查詢指定經絡中特定編號的腧穴中文名稱
- Parameters:
keyID
- 經絡代碼numID
- 腧穴代碼- Returns:
- 腧穴中文名稱
Java 原始碼
package org.wisdomfish.tcm;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
// Java EE 6, JSF 2.0
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
/**
* 中醫藥學-TCMES-經絡
* The meridian (simplified Chinese: 经络;
* traditional Chinese: 經絡; pinyin: jīngluò)
* @author WisdomFish.ORG - 郭朝益(ChaoYi, Kuo), http:://www.wisdomfish.org
* @version 0.1 dev
* @since 2010-07-16
*
*/
@ManagedBean
@ApplicationScoped
public class Meridian {
private final static ImmutableMap<String, ImmutableList<String>> Meridians;
private final static int NOT_POINTS = 1;
private final static int IS_KEY_CNAME = 0;
private Meridian(){};
static {
Builder<String, ImmutableList<String>> init = ImmutableMap.builder();
Meridians = init.
put("LU", ImmutableList.copyOf(
"手太陰肺經 中府 雲門 天府 俠白 尺澤 孔最 列缺 經渠 太淵 魚際 少商".
split("\\s"))).
put("LI", ImmutableList.copyOf(
"手陽明大腸經 商陽 二間 三間 合谷 陽溪 偏歷 溫溜 下廉 上廉 手三里 曲池 肘髎 手五里 臂臑 肩髃 巨骨 天鼎 扶突 口禾髎 迎香".
split("\\s"))).
put("PC", ImmutableList.copyOf(
"手厥陰心包經 天池 天泉 曲澤 隙門 間使 內關 大陵 勞宮 中沖".
split("\\s"))).
build();
}
/**
* 取得經絡代碼清單
* @return 經絡代碼清單
*/
public static ImmutableSet<String> getMeridianIds() {
return Meridians.keySet();
}
/**
* 查詢指定經絡代碼之中文名稱.
* @param keyID 經絡代碼
* @return 經絡代碼中文名稱
*/
public static String getMeridianName(String keyID) {
return Meridians.get(keyID).get(IS_KEY_CNAME);
}
/**
* 查詢指定經絡的腧穴總數值
* @param keyID 經絡代碼
* @return 腧穴總數數值
*/
public static int getAcupuncturePointsSize(String keyID) {
return Meridians.get(keyID).size() - NOT_POINTS;
}
/**
* 取得指定經絡腧的腧穴中文名稱清單
* @param keyID 經絡代碼
* @return 腧穴中文名稱清單
*/
public static ImmutableList<String> getAcupuncturePoints(String keyID) {
return Meridians.get(keyID).subList(NOT_POINTS, Meridians.get(keyID).size());
}
/**
* 查詢指定經絡中特定編號的腧穴中文名稱
* @param keyID 經絡代碼
* @param numID 腧穴代碼
* @return 腧穴中文名稱
*/
public static String getAcupuncturePointName(String keyID, int numID) {
return Meridians.get(keyID).get(numID);
}
public static void main(String[] args) {
final String KEY_ID = "PC";
final int NUM_ID = 5;
long startTime = System.nanoTime()/1000000L;
// System.out.println("經絡總清單:" + Meridians.entrySet());
System.out.println("經絡代碼清單:" + Meridian.getMeridianIds());
System.out.println("代碼名稱-" + KEY_ID + " = " + Meridian.getMeridianName(KEY_ID));
System.out.println(Meridian.getMeridianName(KEY_ID) + " 腧穴總數:" +
Meridian.getAcupuncturePointsSize(KEY_ID) + " 穴");
System.out.println(Meridian.getMeridianName(KEY_ID) + " 腧穴清單:" +
Meridian.getAcupuncturePoints(KEY_ID));
System.out.println(Meridian.getMeridianName(KEY_ID) + " 腧穴編號-" + KEY_ID + NUM_ID +
" = " + Meridian.getAcupuncturePointName(KEY_ID, NUM_ID) + "穴");
long endTime = System.nanoTime()/1000000L;
long time = endTime - startTime;
System.out.println("處理耗時:" + time + "ms");
}
}