caoyinghui

          合并連續數字的算法

          public class Test {
          	public static void main(String[] args) {
          		String str = new String(
          				"1,2,3,4,5,6,7,8,9,11,13,14,1000,1001,1002,1003");
          		String[] s = str.split(",");
          		int[] num = new int[s.length];
          		String result = "";
          		for (int i = 0; i < s.length; i++) {
          			num[i] = Integer.parseInt(s[i]);
          		}
          		for (int i = 0; i < num.length; i++) {
          			if (i == 0) {
          				result = "" + num[i];
          			} else if (i == num.length - 1) {
          				if (num[i] - num[i - 1] == 1) {
          					result = result + "-" + num[i];
          				} else {
          					result = result + "," + num[i];
          				}
          			} else {
          				if ((num[i] - num[i - 1] == 1) && (num[i + 1] - num[i] == 1)) {
          					continue;
          				}
          				if ((num[i] - num[i - 1] == 1) && (num[i + 1] - num[i] != 1)) {
          					result = result + "-" + num[i];
          				}
          				if ((num[i] - num[i - 1] != 1)) {
          					result = result + "," + num[i];
          				}
          
          			}
          
          		}
          		System.out.println(result);
          	}
          }
          作者:caoyinghui1986 發表于2008-5-31 14:11:00 原文鏈接
          閱讀:288 評論:1 查看評論

          posted on 2008-05-31 06:11 shine_panda 閱讀(260) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西城区| 本溪市| 光泽县| 凌云县| 临江市| 延安市| 溧水县| 三原县| 温州市| 偃师市| 淅川县| 桃江县| 水城县| 桂林市| 廉江市| 巢湖市| 舞钢市| 辽阳县| 龙山县| 扶沟县| 兰西县| 称多县| 牙克石市| 澄江县| 临西县| 永平县| 永丰县| 买车| 大关县| 遂昌县| 桓仁| 金湖县| 通江县| 平谷区| 万安县| 青州市| 衡阳市| 阳朔县| 乌兰县| 湟中县| 城固县|