1.Arrays类
-
概述:
- Arrays是数组的工具类。所有的方法都是静态方法,不需要创建对象。
- 一个单词加上s一般就是工具类。
-
常用方法:
方法 说明 static void sort(int[] a) 对数组进行排序从小到大 static String toString(int[] a) 把数组转成字符串 -
示例方法:
package com.a; import java.util.Arrays; import java.util.Comparator; public class Test01 { public static void main(String[] args) { //Arrays数组的工具类 //创建数组 int[] arr = {112,4,35,34,654,6,457,56,84,634,63}; //sort():排序从小到大 Arrays.sort(arr); //从大到小排序 以后会说 //Arrays.sort(arr, new Comparator<Integer>() { // @Override // public int compare(Integer o1, Integer o2) { // return o2-o1; // } //}); //遍历 //for (int i = 0; i < arr.length; i++) { // System.out.print(arr[i]+" "); //} System.out.println(arr.toString()); //地址值 //toString():把数组变成字符串 System.out.println(Arrays.toString(arr)); } }
2.基本类型的包装类
2.1 包装类的概述
包装类就是把八个基本类型变成引用类型。
- 为什么要有包装类?
- 基本类型不能调用属性和方法,引用类型可以调用属性和方法
- 有些地方只能使用引用类型
- 八种基本类型对应的包装类
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer* |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
2.2 Integer的方法
方法 | 说明 |
---|---|
new Integer(int value)【不用】 | 构造方法 |
new Integer(String s)【不用】 | 构造方法 |
static Integer valueOf(String s)【不用】 | 把字符串变成数字 |
static int parseInt(String s)* | 把字符串变成数字 |
2.3 自动装箱和自动拆箱
-
装箱:
-
把基本类型转成对应的引用类型
Integer i5 = 123;
-
-
拆箱:
-
把引用类型转成对应的基本类型
int i6 = new Integer("123");
-
-
结论:
- Integer和int除了类型不同以外,使用是完全一样的。
2.4 int类型和String类型的互相转换
-
int转成String类型:
方式一:任何类型和字符串做+法都是拼接 int a = 6; String s = "黑马" + a + a; //黑马66 方式二: String.valueOf()
-
String转成int类型:
方式一: Integer.parseInt(); 方式二: Integer.valueOf();
八个包装类中有七个类都有对应的parseXxx()的方法,可以把字符串转成对应的类型
只有Character字符类没有
3.String类
String代表字符串,String是java中最常用的类。
3.1常用方法
方法 | 说明 |
---|---|
length() | 获取字符串的长度 |
charAt() | 根据索引获取一个字符 |
equals() | 判读字符串的内容是否相同 |
concat() | 拼接两个字符串的内容 |
contains() | 判断是否包含某个字符串 |
endsWith() | 判断是否以某个字符串结尾 |
startsWith() | 判断是否以某个字符串开头 |
indexOf() | 寻找字符串第一次出现的索引,找不到是-1 |
lastIndexOf() | 寻找字符串最后一次出现的索引,找不到是-1 |
replace() | 把旧的字符串用新的字符串替换 |
substring(int b,int e) | 截取从b索引到e索引(包含头不包含尾) |
substring(int b) | 截取从b索引到最后 |
toCharArray() | 把字符串转成字符数组 |
getBytes() | 把字符串转成字节数组 |
toLowerCase() | 把字母转成小写字母 |
toUpperCase() | 把字母转成大写字母 |
trim() | 去除两端的空白 |
split() | 按照指定的字符串切割 |
equalsIgnoreCase() | 忽略大小写判断字符串内容是否相同 |
4.学生管理系统
package com.c;
import java.util.Objects;
//人类
public abstract class Person {
//成员变量
private int id;//编号
private String name;//姓名
private String sex;//性别
private String birthday;//生日
private int age;//年龄
//无参构造
public Person() {
}
//有参构造
public Person(int id, String name, String sex, String birthday, int age) {
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.age = age;
}
//get/set
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//toString
@Override
public String toString() {
return "Preson{" +
"id=" + id +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", birthday='" + birthday + '\'' +
", age=" + age +
'}';
}
//equals
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person preson = (Person) o;
return id == preson.id &&
age == preson.age &&
Objects.equals(name, preson.name) &&
Objects.equals(sex, preson.sex) &&
Objects.equals(birthday, preson.birthday);
}
@Override
public int hashCode() {
return Objects.hash(id, name, sex, birthday, age);
}
//职业
public abstract String getType();
//工作
public abstract String getWork();
}
package com.c;
//学生类
public class Student extends Person{
//无参构造方法
public Student() {
}
//有参构造方法
public Student(int id, String name, String sex, String birthday, int age) {
super(id, name, sex, birthday, age);
}
@Override
public String getType() {
return "学生";
}
@Override
public String getWork() {
return "敲代码!!!!";
}
}
package com.c;
import java.util.ArrayList;
import java.util.Scanner;
//学生方法类
public class StudentManager {
public static void manager(ArrayList<Student> students) {
//循环
while (true){
System.out.println("=====================================================");
System.out.println("【学员信息管理】");
System.out.println("");
System.out.println("1.添加学员 2.修改学员 3.查询学员 4.删除学员 5.返回");
System.out.println("=====================================================");
//键盘录入
Scanner sc=new Scanner(System.in);
int num = sc.nextInt();
switch (num){
case 1:
addStudent(students);
break;
case 2:
setStudent(students);
break;
case 3:
lookStudent(students);
break;
case 4:
deletStudent(students);
break;
case 5:
return;
default:
System.out.println("输入有误!!!!");
break;
}
}
}
//添加
private static void addStudent(ArrayList<Student> students) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name = sc.next();
System.out.println("请输入性别:");
String sex = sc.next();
System.out.println("请输入生日:");
String birthday = sc.next();
int id=++Utils.stuId;
int age=Utils.birthdayToAge(birthday);
Student stu=new Student(id,name,sex,birthday,age);
students.add(stu);
System.out.println("添加成功!!!");
}
//删除
private static void deletStudent(ArrayList<Student> students) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生编号:");
int id = sc.nextInt();
for (int i = 0; i < students.size(); i++) {
Student stu=students.get(i);
int id1=stu.getId();
if (id==id1){
students.remove(i);
System.out.println("删除成功!!!");
return;
}
}
System.out.println("编号不存在,删除失败!!");
}
//修改
private static void setStudent(ArrayList<Student> students) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入编号:");
int id = sc.nextInt();
for (int i = 0; i < students.size(); i++) {
Student stu=students.get(i);
int id1 = stu.getId();
if(id==id1){
//输入姓名
System.out.println("请输入学生姓名:(输入0保留原值)");
String name = sc.next();
//输入性别
System.out.println("请输入学生性别:(输入0保留原值)");
String sex = sc.next();
//输入生日
System.out.println("请输入学生生日:(格式:xxxx-xx-xx 输入0保留原值)");
String birthday = sc.next();
if(!name.equals("0")){
stu.setName(name);
}
if(!sex.equals("0")){
stu.setSex(sex);
}
if(!birthday.equals("0")){
stu.setBirthday(birthday);
int age = Utils.birthdayToAge(birthday);
stu.setAge(age);
}
return;
}
}
System.out.println("编号不存在,修改失败!!!");
}
//查看
private static void lookStudent(ArrayList<Student> students) {
if (students.size()==0){
System.out.println("没有学生!!!");
}else{
Utils.printPersonList(students);
}
}
}
package com.c;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
//工具类
public class Utils {
public static int stuId = 0; //学生编号
public static int teaId = 0; //老师编号
//根据生日计算年龄
public static int birthdayToAge(String birthday) { //2000-08-20
Date birthDate = null;
//解决报错代码 以后会学
try {
//把字符串的生日转成Date类型
birthDate =new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
//代表当前时间
Calendar now = Calendar.getInstance();
//代表出生时间
Calendar birth = Calendar.getInstance();
birth.setTime(birthDate);
//2020 2022 -1表示错误
if (now.before(birth)) {
return -1;
}
//获取现在的年月日
int yearNow = now.get(Calendar.YEAR);
int monthNow = now.get(Calendar.MONTH);
int day = now.get(Calendar.DAY_OF_MONTH);
//获取出生的年月日
int yearBirth = birth.get(Calendar.YEAR);
int monthBirth = birth.get(Calendar.MONTH);
int dayBirth = birth.get(Calendar.DAY_OF_MONTH);
//先计算大概年龄
int age = yearNow - yearBirth;
//如果月份还没到,今年生日还没过 年龄-1
if (monthNow < monthBirth) {
age--;
}
//如果月份相同但是生日日期还没到 年龄-1
if (monthNow == monthBirth && day < dayBirth) {
age--;
}
return age;
}
//打印信息方法 ? extends Person还没学
public static void printPersonList(ArrayList<? extends Person> list) {
System.out.println("************************************************************************************");
System.out.println("编号\t\t姓名\t\t\t性别\t\t生日\t\t\t\t年龄\t\t描述");
//遍历集合
for (int i = 0; i < list.size(); i++) {
//获取集合的每个元素
Person p = list.get(i);
System.out.println(p.getId() + "\t\t" + p.getName() + "\t\t" + p.getSex() + "\t\t" + p.getBirthday() + "\t\t" + p.getAge() + "\t\t" + "我是一名"+ p.getType() +"我要" + p.getWork());
}
System.out.println("************************************************************************************");
}
}
package com.c;
import java.util.ArrayList;
import java.util.Scanner;
//主方法
public class MainApp {
public static void main(String[] args) {
//学生集合
ArrayList<Student> students=new ArrayList<>();
//老师集合
ArrayList<Teacher> teachers=new ArrayList<>();
while (true){
//一级菜单
System.out.println("********************************************");
System.out.println(" 1.学员信息管理 2.教师信息管理 3.退出");
System.out.println("********************************************");
//键盘输入
Scanner sc=new Scanner(System.in);
System.out.println("请输入菜单编号:");
int num = sc.nextInt();
switch (num){
case 1:
StudentManager.manager(students);
break;
case 2:
TeacherManager.manager(teachers);
break;
case 3:
System.out.println("再见!!!");
System.exit(0);
break;
default:
System.out.println("输入有误!!!");
break;
} }
}
}