java - 打印连续数字

标签 java arrays

我已经对整数数组 {1,2,3,7,9,24,25,26,78} 进行了排序,并希望连续打印以打印 {1-3,7,9,24-26,78} .也就是说,每当数组中出现一组连续的数字时,我想打印出从最小数到最大数的范围。

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Consecutive{

public static void main(String[] args){
    int[] a={1,2,3,7,9,24,25,26,78};

    for(int i=0;i<a.length;i++){
        int count=0;
        int first=0;

    /*  System.out.println(i);*/
        first=a[i];

        if(a[i+1]-a[i]==1){

            count++;

            int last=a[i]+count;
            i++;
            System.out.println(first + " " + last);

                }else{


                System.out.println(a[i]);

                }

    }
}
}

最佳答案

你可以这样做:

    if(a.length>0) {            
        int i=0,j=0; 
        do{
            j=i+1;
            while(j<a.length){
                if(a[j]-a[i]!=j-i)
                    break;
                j++;
            }
            if(i==j-1)
                System.out.println(a[i]);
            else
                System.out.println(a[i] + "-" + a[j-1]);
            i=j;
        }while(i<a.length);
    }

希望对你有帮助。

关于java - 打印连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963019/

相关文章:

java - 添加 notifyDataSetChanged() 后检测到不一致错误

java - 为什么字符的 switch/case 不起作用?

java - android.os.Bundle 中 getInt(string key) 返回的整数是多少?

python - 如何通过 pybind11 在 Python 中访问 C/C++ 数组

Python将txt转换为数组

c - C 中删除数组中的空格?

java - 从 Android 应用程序多次向 URL 发送请求的最佳方式是什么?

java - 如何让Selenium等待页面上的元素被替换(java)

arrays - 合并排序变体 n+m,困惑

C- 指针、数组和结构之间的交互