<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/開源資料

    主站蜘蛛池模板: 国产99久久久久久免费看| 青青草国产免费国产是公开| 成人免费淫片在线费观看| 免费的黄网站男人的天堂| 亚洲成年轻人电影网站www | 亚洲av永久中文无码精品综合 | 亚洲国产一二三精品无码| 久久精品国产免费观看| 色www免费视频| 亚洲明星合成图综合区在线| 亚洲国产精品专区在线观看| 免费观看美女用震蛋喷水的视频| 黄页视频在线观看免费| 亚洲成aⅴ人片在线观| 国产精品亚洲综合一区| 青青久在线视频免费观看| 中国一级特黄的片子免费| 亚洲国产精品18久久久久久| 久久精品a亚洲国产v高清不卡 | 亚洲AV无码一区东京热久久 | 亚洲国产精品免费视频| 校园亚洲春色另类小说合集| 久久亚洲精品成人无码网站| 亚洲人成色77777在线观看大| 成人福利免费视频| 黄页免费在线观看| 在线播放免费人成视频网站| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲av无码乱码国产精品fc2| 亚洲国产精品成人| 国产精品无码一二区免费| 青青视频观看免费99| 久操免费在线观看| 黄 色一级 成 人网站免费| 亚洲Aⅴ在线无码播放毛片一线天| 91亚洲国产在人线播放午夜| 亚洲国产精品无码专区在线观看| 亚洲国产一级在线观看 | 人人揉揉香蕉大免费不卡| 一级毛片在线完整免费观看| 亚洲精品无码不卡在线播放|