牛骨文教育服务平台(让学习变的简单)
博文笔记

键盘输入10个数,放到数组中去除该数组中大于10的数,将该数组中的数字写入到本地文件

创建时间:2018-01-20 投稿人: 浏览次数:512

参考了一下其他的文章:


下面是我自己写的代码:

/*
   3.键盘输入10个数,放到数组中
	  (1)去除该数组中大于10的数
	  (2)将该数组中的数字写入到本地文件number.txt中

          解题思路:
         1,接收数组   写一个函数
         2,去除数组中的大于 10的数  写一个函数
         3,将数组写入number.txt中   写一个函数
	
 */
package HomeWork3;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Number_Array {
	public static void main(String[] args) {
		double[] doubleArr = new double[10];
		acceptArr(doubleArr);
		double[] newDoubleArr = removeNumber(doubleArr);
		writeNumber(newDoubleArr);

	}

	/*
	 * 将数组中的数组写到本地文件 number.txt中 writeNumber函数
	 */
	public static void writeNumber(double[] doubleArr) {
		// 将数组中的元素写入到 number.txt 文件中
		FileWriter fw = null;
		try {
			fw = new FileWriter("h:\number.txt");
			for (int i = 0; i < doubleArr.length; i++) {
				fw.write(doubleArr[i] + "-");// 将double转换成String
			}
		} catch (IOException ex) {
			System.out.println(ex);
			throw new RuntimeException("文件写入失败!");
		} finally {
			try {
				if (fw != null)
					fw.close();
			} catch (IOException ex) {
				System.out.println(ex);
				throw new RuntimeException("释放资源失败!");
			}
		}
	}

	/*
	 * 去除数组中的大于10的数,写一个函数removeNumber 删除数组元素,写一个函数delete
	 */
	public static double[] removeNumber(double[] doubleArr) {
		// 遍历数组,对小于 10 的数组中的元素,删除,最后输出一下删除了相应元素的数组

		int count = 0;// 统计数组中大于10的元素
		for (int i = 0; i < doubleArr.length; i++) {
			if (doubleArr[i] > 10)
				count++;
		}

		// 创建一个数组,将上面数组中小于10的数组添加进来
		double[] newDoubleArr = new double[doubleArr.length - count];
		// for循环中的 j=0;是为了newDoubleArr中的数组下标
		for (int i = 0, j = 0; i < doubleArr.length; i++) {
			if (doubleArr[i] < 10)
				// 如果数组中的元素小于10,那么就添加进数组newDoubleArr中,等价于删除大于10的数组元素
				// 如果数组元素小于10,那么newDoubleArr数组下标就 +1
				newDoubleArr[j++] = doubleArr[i];
		}

		System.out.println("删除后的数组元素为:");
		for (double d : newDoubleArr) {
			System.out.print(d + " ");
		}
		// 返回删除后的数组,在主函数中接收一下,能够传送一下删除后的数组
		return newDoubleArr;
	}

	/*
	 * 接收数组,写一个函数
	 */
	public static void acceptArr(double[] doubleArr) {
		// 键盘接收 10个数,double类型,最后输出一下接收的数组
		System.out.println("请输入任意10个数:");
		Scanner sc = new Scanner(System.in);
		for (int i = 0; i < 10; i++) {
			doubleArr[i] = sc.nextDouble();
		}
		sc.close();
		System.out.println("接收的数组元素为:");
		for (int i = 0; i < doubleArr.length; i++) {
			System.out.print(doubleArr[i] + " ");
		}
	}
}



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。