JAVA编程;输入一组正整数,以-1表示输入结束,去掉连续相同的数(仅保留一个)进行输出

2025-03-28 21:11:55
推荐回答(3个)
回答1:

以下代码不一定最佳,但能实现你所描述的功能。
代码如下:
import java.io.*;
import java.util.*;
public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List ini=new ArrayList();//存储原始数组
List list=new ArrayList();//存储除重后的数组
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String str=in.readLine();//读数据行
String str1="";
for(int i = 0;i {

if(str.toCharArray()[i]!=' '&&str.toCharArray()[i]!='-')
{
str1=str1+str.toCharArray()[i];
}
else if(str.toCharArray()[i]==' '&&str.toCharArray()[i]!='-')
{
int intvalue=Integer.valueOf(str1);
ini.add(intvalue);
str1="";
}
else if(str.toCharArray()[i]=='-'&&str.toCharArray()[i+1]=='1')
{
//for(int x =0 ;x // System.out.print("dd"+ini.get(x)+" ");

for(int j = 0 ;j {
boolean flag=false;
for(int k=0;k {
if(ini.get(j)==list.get(k))
{
flag=true;
break;
}
}
if(!flag)
list.add(ini.get(j));
}
break;
}
}
for(int i =0 ;i System.out.print(list.get(i)+" ");
System.out.println();
}catch (Exception exc){
System.out.println("输入错误!");
return;
}

}

}

21 21 21 23 23 34 32 32 342 342 -1
21 23 34 32 342 342

回答2:

public static void main(String[] args) {
BufferedInputStream bif=new BufferedInputStream(System.in);
InputStreamReader isr=new InputStreamReader(bif);
BufferedReader brd=new BufferedReader(isr);

Vector v1=new Vector();
Vector v2=new Vector();
try {
String str2="";
String str="";
int i=0;
while(!str.equals("-1")&&i<50)
{
str=brd.readLine();
v1.add(str);
if(!str.equals(str2))
{
str2=str;
v2.add(str2);
System.out.println(str2);
}
i++;
}
for(String s:v1)
{
System.out.print(s+",");
}
System.out.println();
for(String ss:v2)
{
System.out.print(ss+",");
}
brd.close();
isr.close();
bif.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

1,2,3,3,4,4,5,5,6,66,7,5,4,33,44,33,44,3,4,4,3,3,-1,
1,2,3,4,5,6,66,7,5,4,33,44,33,44,3,4,3,-1,

回答3:

楼上的就答案