java:删除数组零元素

java:删除数组零元素

题目

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。
样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)
5 
3 4 0 0 2
样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)
3
3 4 2
样例输入: 
7
0 0 7 0 0 9 0
样例输出:
2
7 9
样例输入: 
3
0 0 0
样例输出:
0

我并不知道这为什么错了

import java.util.Scanner;

public class 删除数组零元素 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		String s=sc.nextLine();
		String str=s.replaceAll("0","");
		char[] a=s.toCharArray();
		int cnt=0;
		for(int i=0;i<a.length;i++){
			if(a[i]=='0')
				cnt++;
		}
		cnt=n-cnt;
		System.out.println(cnt);
		System.out.println(str);
	}

}

https://blog.csdn.net/a1439775520/article/details/91460544?ops_request_misc=%7B%22request%5Fid%22%3A%22158284317119726867808594%22%2C%22scm%22%3A%2220140713.130056874…%22%7D&request_id=158284317119726867808594&biz_id=0&utm_source=distribute.pc_search_result.none-task

import java.util.ArrayList;
import java.util.Scanner;

public class 删除数组零元素 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		ArrayList<Integer>al=new ArrayList<Integer>();//创建一个arraylist动态数组
		for(int i=0;i<n;i++){
			al.add(sc.nextInt());
		}
		int index=0;
		//循环判断每个位置元素是否为0
		while(index<al.size()){
			if(al.get(index)==0){
				al.remove(index);
			}else{
				index++;
			}
		}
		System.out.println(al.size());
		for(int i=0;i<al.size();i++)
			System.out.print(al.get(i)+" ");
	}

}

发布了146 篇原创文章 · 获赞 3 · 访问量 2787

猜你喜欢

转载自blog.csdn.net/weixin_44522477/article/details/104558059