int[] num = {1,3,4,6,7,8,11,17,18};
例如这么一个数组
想要找出里面所有连续的数,像3和4; 还有6,7,8; 17,18这些;

解决方案 »

  1.   

    如果num[n+1] = num[n]+1
    就把这个num[n+1]打印出来
      

  2.   


    public static void main(String[] args) {
    int[] num = {3,1,4,6,11,7,8,17,18,19,45,46,47}; 
    Arrays.sort(num);
    List<String> list = new ArrayList<String>();
    StringBuilder sb = new StringBuilder();
    for(int i=0;i<num.length;i++) {
    if(i==num.length-1) {
    if(sb.length()>0) {
    sb.append(num[i]).append(",");
    list.add(sb.toString());
    }
    break;
    }
    if(num[i+1]-num[i] == 1) {
    sb.append(num[i]).append(",");
    }else{
    if(sb.length()>0) {
    sb.append(num[i]).append(",");
    list.add(sb.toString());
    sb = new StringBuilder();
    }
    }

    }
    for(String str : list) {
    System.out.println(str);
    }
    }
      

  3.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;public class Test1 {
    public static void main(String[] args) {
    int[] num = { 3, 1, 4, 6, 11, 7, 8, 17, 18, 19, 45, 46, 47 }; Arrays.sort(num); List<String> list = new ArrayList<String>();
    for (int i = 0; i < num.length; i++) {
    if(i==num.length-1)System.out.println(num[i]);
    else if (num[i] + 1 == num[i + 1])
    System.out.print(num[i] + ",");
    else {
    System.out.println(num[i]);
    System.out.println();
    }
    }
    for (String str : list)
    System.out.println(str); }
    }
      

  4.   

    想问一个问题:
    为什么要写成List<String> list = new ArrayList<String>();
    而不直接写成ArrayList<String> list = new ArrayList<String>();呢?????
      

  5.   

    程序这样子写就完美了
    呵呵!!import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;public class Test1 {
        public static void main(String[] args) {
          int[] num = { 3, 1, 4, 6, 11, 7, 8, 17, 18, 19, 45, 46, 47 };         Arrays.sort(num);         List<String> list = new ArrayList<String>();
            for (int i = 0; i < num.length; i++) {
                if(i==num.length-1)System.out.println(num[i]);
                else if (num[i] + 1 == num[i + 1])
                    System.out.print(num[i] + ",");
                else 
                {
                 if((i!=0)&&(num[i] - 1 == num[i - 1]))
                 {

                 System.out.println(num[i]);
                 System.out.println();
                 }
                }
            }
            for (String str : list)
                System.out.println(str);
        }
    }
      

  6.   

    import java.util.ArrayList; 
    import java.util.Arrays; 
    import java.util.Collection; 
    import java.util.Collections; 
    import java.util.HashSet; 
    import java.util.List; 
    import java.util.Set; public class Test1 { 
        public static void main(String[] args) { 
          int[] num = { 3, 1, 4, 6, 11, 7, 8, 17, 18, 19, 45, 46, 47 };         Arrays.asList(num);         List <String> list = new ArrayList <String>(); 
            for (int i = 0; i < num.length; i++) { 
                if(i==num.length-1)System.out.println(num[i]); 
                else if (num[i] + 1 == num[i + 1]) 
                    System.out.print(num[i] + ","); 
                else 
                { 
                if((i!=0)&&(num[i] - 1 == num[i - 1])) 
                { 
                System.out.println(num[i]); 
                System.out.println(); 
                } 
                } 
            } 
            for (String str : list) 
                System.out.println(str); 
        } 
    }
      

  7.   


    if(i==num.length-1)System.out.println(num[i]); 
    这里好像有问题哦,你把最后一个元素改为其他不跟前面连续会是什么结果呢???