java中:输入一组正整数,以-1表示输入结束,去掉连续相同的数(仅保留一个)进行输出,例如1,5,5,

2025-04-04 22:42:30
推荐回答(4个)
回答(1):

这种只要把数组前后值比较下就可以了,如果不相等,就放入list集合或是数组
public static void main(String[] ags){
int[] array={1,5,5,5,3,4,5,6,6,6,3,-1};
int index=array[0];
List list=new ArrayList();
list.add(index);
for(int i=1; i if(array[i]==-1) break; //为-1时退出循环
if(index!=array[i]){
list.add(array[i]);
index=array[i];
}
}
System.out.println(list.toString());
}

回答(2):

import java.util.Scanner;

public class T {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);

String result = "";
int x = in.nextInt();
int last = -1;

while (x != -1) {
if (x != last) {
result = result + Integer.toString(x) + " ";

last=x;
}

x = in.nextInt();
}

System.out.println(result);
}
}

输入:
1 5 5 5 3 4 2 2 -1
输出
1 5 3 4 2

回答(3):

有人捷足先登了哎,好吧,还是奉上我的代码,直接使用list操作的
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List list = new ArrayList();
System.out.println("输入数字:");
while(true){
Integer num = input.nextInt();
list.add(num);
if(num.intValue()==-1)
break;
}
for (int i = 0; i < list.size(); i++) {
if(list.get(i).intValue() == -1){
list.remove(i);
break;
}
if(list.get(i).intValue() == list.get(i+1).intValue()){
list.remove(i);
i--;
}
}
System.out.println(list.toString());
}

回答(4):

public class hai {
public static void main(String[] args) {
int a[] = { 1, 5, 5, 5, 3, 4, 5, 6, 6, 6, 3, -1 };
int i = 0;
while (a[i] != -1) {
if (a[i] != a[i + 1])
System.out.print(a[i] + " ");
i++;
}
}

}
输出结果:1 5 3 4 5 6 3 ,我运行可以,你试试!