java综合小练习(不难,都是基础的结合)


学习资源推荐 https://blog.csdn.net/qq_42813491/article/details/90213353

练习一

	  A:键盘录入3个学生信息(学号,姓名,居住地)存入集合 
	  B:遍历集合把每一个学生信息存入文本文件
	  C:每一个学生信息为一行数据,每行学生的学号,姓名和居住地在文件中均以逗号分隔

目录结构

在这里插入图片描述


学生实体

package task;

public class Student {

	private String id;
	private String name;
	private String address;

	public Student() {
		super();
	}

	public Student(String id, String name, String address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}

逻辑和测试

package task;

import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Test {

	public static void main(String[] args) throws Exception {

		/*
		 * A:键盘录入3个学生信息(学号,姓名,居住地)存入集合 
		 * B:遍历集合把每一个学生信息存入文本文件
		 * C:每一个学生信息为一行数据,每行学生的学号,姓名和居住地在文件中均以逗号分隔
		 */

		List<Student> list = new ArrayList();// 存放学生信息的集合

		// 循环录入学生信息
		for (int i = 0; i < 3; i++) {
			System.out.println("请输入学生id");
			String id = new Scanner(System.in).nextLine();
			System.out.println("请输入学生name");
			String name = new Scanner(System.in).nextLine();
			System.out.println("请输入学生address");
			String address = new Scanner(System.in).nextLine();
			Student student = new Student(id, name, address);// 填充学生对象
			list.add(student);// 将学生对象添加到集合
			System.out.println("录入成功" + (i + 1));// 提示录入次数
		}

		FileWriter fw = new FileWriter("stu.txt");// 等会要写入的文件

		for (Student student : list) {
			fw.write(student.getId() + "," + student.getName() + "," + student.getAddress());// 分隔符
			fw.write("\r\n");// 换行
		}

		System.out.println("写入完毕");// 提示

		fw.close();// 关闭流

	}

}

效果图

在这里插入图片描述

练习二

把上一案例的stu.txt文本文件中的学生信息读取出来存储到集合中,然后遍历集合,在控制台输出


学生实体类

  • 加一个toString,其他的和上边一样
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", address=" + address + "]";
	}

逻辑和测试

package task;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

public class Test {

	public static void main(String[] args) throws Exception {

		// 创建输入缓冲流对象,用来读取学生信息
		BufferedReader br = new BufferedReader(new FileReader("stu.txt"));

		String str = "";// 用来保存读取的数据

		List<Student> list = new ArrayList();// 用来存放读取的学生信息

		while ((str = br.readLine()) != null) {

			String[] student = str.split(",");// 分割学生数组,每一个索引就是一个学生的个人信息
			Student s = new Student();// 创建学生实例,填充对象
			s.setId(student[0]);
			s.setName(student[1]);
			s.setAddress(student[2]);
			list.add(s);// 将学生数据添加到集合中

		}

		//遍历集合,打印到控制台,学生实体重写toString()
		for (Student student : list) {
			System.out.println(student);
		}

		br.close();// 关闭流

	}

}

效果图

在这里插入图片描述

练习三

需求:自定义一个专门对数组操作的工具类,具有的功能如下
1,定义一个方法,该方法可以返回数组中最大元素,以int数组为例
2,定义一个方法,该方法根据指定的值去数组中查找是否存在该值
存在,返回该值在数组中的索引,不存在,返回-1	以int,String数组为例,使用重载,使用static关键字

代码

package task;

public class ArrayUtils {
	// 需求:自定义一个专门对数组操作的工具类,具有的功能如下
	// 1.定义一个方法,该方法可以返回数组中最大元素,以int数组为例
	// 2.定义一个方法,该方法根据指定的值去数组中查找是否存在该值
	// 存在,返回该值在数组中的索引
	// 不存在,返回-1
	// 以int,String数组为例,使用重载

	// max_array->该方法可以返回数组中最大元素
	public static int max_array(int[] array) {

		int max = array[0];// 假定0索引的元素值最大

		for (int arr : array) {// 遍历整个数组,将大于max的元素赋值给max,遍历结束后返回max
			if (max < arr) {
				max = arr;
			}
		}

		return max;
	}

	// 针对int 数组的查找方法
	public static int find_array(int[] array, int data) {

		for (int i = 0; i < array.length; i++) {// 遍历数组,看看是否有用户传递进来的值

			if (array[i] == data) {
				return i;// 存在,返回该值在数组中的索引
			}
		}
		return -1;

	}

	// 重载->针对String 数组的查找方法
	public static int find_array(String[] array, String str) {

		for (int i = 0; i < array.length; i++) {// 遍历数组,看看是否有用户传递进来的值

			if (array[i].equals(str)) {
				return i;// 存在,返回该值在数组中的索引
			}
		}
		return -1;

	}

}





测试

int[] int_array = { 1, 10, 5, 90, 177 };
		String[] str_array = { "冷", "月", "心" };

		System.out.println(ArrayUtils.max_array(int_array));// 177
		System.out.println(ArrayUtils.find_array(int_array, 70));// -1
		System.out.println(ArrayUtils.find_array(int_array, 1));// 0
		System.out.println(ArrayUtils.find_array(str_array, "冷"));// 0
		System.out.println(ArrayUtils.find_array(str_array, "寒"));// -1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值