<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    遞歸實現類似騰訊的積分等級處理 (原創)

    由于最近做積分系統剛好需要一個類似騰訊qq等級的方式:比如一個太陽等級A表示1000分,一個月亮B表示800分,另外一個星星C表示100分;則若用戶的積分為2950則是AABC表示即可,若用戶積分為1950則用ABC即可,若用戶積分為2150則用AAC即可,若用戶積分為1150則用AC即可,以此類推,可以用遞歸來解決這類問題,代碼如下
    import java.util.ArrayList;
    import java.util.List;

    public class BeanShellDemo {

        
    static StringBuffer sb = new StringBuffer();

        
    /**
         * point表示用戶的總積分,levellist表示積分等級列表;<br>
         * 在本例子中需要說明的是積分等級列表是要按順序的
         * 
    @param point
         * 
    @param leverlist
         * 
    @return
         
    */

        
    public static String getMyLand(int point, List levellist) {

            
    int starnum = 0;
            
    int leftpoint = 0;
            
    int maxlevel = Integer.parseInt(levellist.get(levellist.size() - 1)
                    .toString());
    //列表中的最大等級
            int minlevel = Integer.parseInt(levellist.get(0).toString());//列表中的最小等級

            
    if(levellist.size() > 0 && point< minlevel){
                
    return "積分不夠最小等級,則默認為最低的等級"+minlevel;
            }
    else
            
    if (levellist.size() > 0 && point >= minlevel) {    //當用戶積分小于最小等級值則不做處理

                
    if (point < maxlevel && levellist.size() > 0// 小于最大等級則
                    levellist.remove(levellist.size() - 1);     // 將當前list中的最大等級移除 
                    leftpoint = point;                          //(注意因為例子中的list是由小到大排序的,亂順則要另外處理)
                }
     else {
                    starnum 
    = point / maxlevel;                 //取商 比如280/6 = 46
                    leftpoint = point % maxlevel;               //取模 比如280%6 = 4
                    sb.append("" + starnum + "個等級為" + maxlevel + "的頭銜" + "#");
                }

                getMyLand(leftpoint, levellist);
            }


            
    return sb.toString();
        }


        
    public static void main(String[] args) {

            
    int leverarray[] = 501003005001000 };
            List
    <Integer> levellist = new ArrayList<Integer>();
            
    for (int i = 0; i < leverarray.length; i++{
                levellist.add(leverarray[i]);
            }
            
            
    int userpoint = 20;
            
    int userpoint2 = 2190;
            System.out.println(getMyLand(userpoint, levellist));
            System.out.println(getMyLand(userpoint2, levellist));

        }

    }



    執行結果如:
    積分不夠最小等級,則默認為最低的等級50
    有2個等級為1000的頭銜#有1個等級為100的頭銜#有1個等級為50的頭銜#

    通過其他方法對返回的串做處理即可,有好方法的朋友歡迎溝通!!

    posted on 2008-01-15 23:40 都市淘沙者 閱讀(490) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 97se亚洲综合在线| 亚洲乱码一区二区三区在线观看 | 国产成人免费手机在线观看视频 | 亚洲国产成人久久综合碰| 亚洲色成人网站WWW永久四虎 | gogo全球高清大胆亚洲| 青青免费在线视频| 亚洲AV永久无码精品一区二区国产 | 国产禁女女网站免费看| 国产大陆亚洲精品国产| 日韩精品亚洲专区在线观看| 免费无遮挡无遮羞在线看| 亚洲综合色区在线观看| 成全视频在线观看免费| 亚洲高清资源在线观看| 成年轻人网站色免费看| 青青视频免费在线| 亚洲日韩欧洲无码av夜夜摸| 1区2区3区产品乱码免费| 精品国产日韩久久亚洲| 四只虎免费永久观看| 中文字幕视频免费在线观看| 亚洲AV电影院在线观看| 一个人在线观看视频免费| 亚洲AV永久无码精品一福利| 精品国产人成亚洲区| 一区二区三区观看免费中文视频在线播放 | 精品亚洲成α人无码成α在线观看| 中文字幕免费观看视频| 亚洲人成影院午夜网站| 亚洲高清无码专区视频| 免费国产成人18在线观看| 精品国产成人亚洲午夜福利| 免费大片黄手机在线观看| 无人在线观看免费高清| 国产亚洲精aa在线看| 亚洲精品午夜无码专区| 成人免费男女视频网站慢动作 | 免费一级做a爰片久久毛片潮| 久久久影院亚洲精品| 国产免费av一区二区三区|