Java 打印连续数字
我对整数数组{1,2,3,7,9,24,25,26,78}进行了排序,并希望连续打印{1-3,7,9,24-26,78}。也就是说,每当数组中出现一组连续的数字时,我想打印出从最小数字到最大数字的范围Java 打印连续数字,java,arrays,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{
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]);
}
}
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
连续上课{
公共静态void main(字符串[]args){
int[]a={1,2,3,7,9,24,25,26,78};
对于(int i=0;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);
}
如果(a.length>0){
int i=0,j=0;
做{
j=i+1;
while(jn)与你的问题无关,但你对那里的类名称有一些误解……除非这是在名为Main.java
@Makoto的文件中,谢谢。