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

    主站蜘蛛池模板: 久青草视频在线观看免费| 亚洲国产天堂久久综合网站 | 免费大片黄手机在线观看| 亚洲一卡二卡三卡| 妻子5免费完整高清电视| 久久久久亚洲精品日久生情| 99久久国产免费中文无字幕| 337p日本欧洲亚洲大胆色噜噜| 1000部无遮挡拍拍拍免费视频观看 | 日韩精品无码专区免费播放| 图图资源网亚洲综合网站| 女人体1963午夜免费视频| 无码一区二区三区免费视频| 亚洲av无码一区二区三区观看| 成年在线观看网站免费| 亚洲欧美一区二区三区日产| 免费看美女被靠到爽| 无遮挡呻吟娇喘视频免费播放| 亚洲国产精品一区二区九九 | 亚洲欧洲日产国码久在线| 日韩在线视频免费看| 亚洲日韩中文无码久久| 国产精品免费看久久久 | 亚洲高清视频一视频二视频三| 一级毛片视频免费| 操美女视频免费网站| 亚洲无删减国产精品一区| 免费观看激色视频网站(性色)| 国产亚洲av片在线观看播放| 18未年禁止免费观看| 亚洲欧美日韩久久精品| 国产一区视频在线免费观看 | 69av免费视频| 久久亚洲AV成人无码国产电影| 99在线视频免费观看视频| 风间由美在线亚洲一区| 免费无码又爽又刺激毛片| 国产精品免费观看视频| 亚洲一级视频在线观看| 亚洲精品专区在线观看| 美女无遮挡拍拍拍免费视频|