国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java學習:用Map替代眾多的if-else

2019-11-14 15:39:03
字體:
來源:轉載
供稿:網友

#2014.11.13#

問題情景:根據標簽對字符串做出相應的處理,輸入格式:{標簽}{目標字符串}

大寫化 String1
小寫化 String2
逆序 String3
....
functionN StringN
 
通常用if else的實現方式大致如下:
while(讀取行) {
將每一行的輸入拆分,然后存入String function,String str;
if ( function.equals("大寫化")){
//調用函數處理str
}else if ( function.equals("小寫化")){
//調用函數處理str
}else if(){
}
...
}
 
這樣寫很不痛快而且代碼難看,使用Map的映射能力可以解決這個問題,基本思路是使用Map將<處理標簽>和相應的<類>建立映射關系,這樣的話Map.get(<標簽>)就是那個類了,接下來調用方法即可解決Map.get(<標簽>).getResult(str);
 
實現方式如下:
首先定義一個接口
public interface Type {
    String getResult (String str);
}
 
接下來繼承這個接口實現各種功能類
public class functionA implements Type{
    @Override
    public String getResult ( String str ){
        //A函數的功能
    }
}
.....同樣的functionB,functionC ......
 
以上是一些準備工作,一開始的 if-else 部分轉化如下:
Map<String,Type> map= new HashMap<String,Type>();
        map.put("大寫化",new functionA());
        map.put("小寫化",new functionB());
        map.put("逆序", new functionC());
.......
while(讀取行){
將每一行的輸入拆分,然后存入String function,String str;
map.get( function ).getResult( str );
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岑巩县| 绍兴县| 长丰县| 应用必备| 永年县| 永吉县| 稷山县| 阳西县| 磴口县| 长垣县| 会同县| 深圳市| 丰顺县| 宜宾县| 大新县| 双流县| 白水县| 察雅县| 云安县| 清水县| 马山县| 乐东| 玉龙| 荆州市| 师宗县| 昌图县| 密山市| 洞头县| 宜丰县| 丹东市| 卢氏县| 凤翔县| 华池县| 阿瓦提县| 拉萨市| 巴青县| 砀山县| 中宁县| 濉溪县| 久治县| 丰台区|