diff --git "a/work/com/java/minxi/java_20240512/java_2023_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" "b/work/com/java/minxi/java_20240512/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" similarity index 98% rename from "work/com/java/minxi/java_20240512/java_2023_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" rename to "work/com/java/minxi/java_20240512/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" index ae489266e4de20502cecbd82876adc04f5268c2f..59ef61c1e5d7370f55f4389ade36ee16c44f8b23 100644 --- "a/work/com/java/minxi/java_20240512/java_2023_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" +++ "b/work/com/java/minxi/java_20240512/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" @@ -1,4 +1,4 @@ -package com.java.minxi.java_20240512.java_2023_刘家鸿_2344310227; +package com.java.minxi.java_20240512.java_2302_刘家鸿_2344310227; import java.util.ArrayList; import java.util.Collections; diff --git "a/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Student.java" "b/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Student.java" new file mode 100644 index 0000000000000000000000000000000000000000..2ae39b262eaa010f20f5a971078a7bdebaf84301 --- /dev/null +++ "b/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Student.java" @@ -0,0 +1,30 @@ +package com.java.minxi.java_20240515.java_2302_刘家鸿_2344310227; + +public class Student { + private String name; + private int age; + + public Student() { + } + + public Student(String name, int age) { + this.name = name; + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +} diff --git "a/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" "b/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" new file mode 100644 index 0000000000000000000000000000000000000000..13e2f6625ac454ac0fba1adf22d40666c99e82d2 --- /dev/null +++ "b/work/com/java/minxi/java_20240515/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" @@ -0,0 +1,158 @@ +package com.java.minxi.java_20240515.java_2302_刘家鸿_2344310227; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class Work { + public static void main(String[] args) { + //创建一个 `HashSet` 并添加至少5个不同的字符串元素。 + HashSet strSet = new HashSet<>(); + strSet.add("Java"); + strSet.add("MySQL"); + strSet.add("C#"); + strSet.add("Python"); + strSet.add("PHP"); + System.out.println("初始数据: "+strSet); + System.out.println(); + + //检查一个特定的字符串是否已经存在于你创建的 `HashSet` 中。 + System.out.println("“Java”是否存在于HastSet: "+strSet.contains("Java")); + System.out.println(); + + //从 `HashSet` 中移除一个已存在的元素,并确认它已被移除。 + strSet.remove("Python"); + System.out.println("移除“Python”之后的HashSet: "+strSet); + System.out.println(); + + //打印出 `HashSet` 的大小。 + System.out.println("HashSet的大小: "+strSet.size()); + System.out.println(); + + //使用增强型 `for` 循环遍历 `HashSet` 并打印每个元素。 + System.out.print("加强for循环遍历: "); + for (String s : strSet) { + System.out.print(s+" "); + } + System.out.println(); + System.out.println(); + + // 将 `HashSet` 转换为数组,并打印数组中的每个元素。 + Object[] arr = strSet.toArray(); + System.out.print("转换为数组之后并打印: ["); + for (int i = 0; i < arr.length; i++) { + if (i==arr.length-1){ + System.out.print(arr[i]); + }else{ + System.out.print(arr[i]+", "); + } + } + System.out.println("]"); + + //创建两个 `HashSet` 对象,实现它们的并集操作。 + HashSet strSet1 = new HashSet<>(); + strSet1.add("Java"); + strSet1.add("C++"); + strSet1.add("C#"); + strSet1.add("Pr"); + strSet1.add("Ae"); + + HashSet temp =new HashSet<>(); + + temp.addAll(strSet); + temp.addAll(strSet1); + System.out.println("并集: "+temp); + System.out.println(); + + //对上面创建的两个 `HashSet` 对象实现交集操作。 + temp.clear(); + temp.addAll(strSet1); + temp.retainAll(strSet); + System.out.println("交集: "+temp); + System.out.println(); + + //对上面创建的两个 `HashSet` 对象实现差集操作。 + temp.clear(); + temp.addAll(strSet); + temp.removeAll(strSet1); + System.out.println("差集: "+temp); + System.out.println(); + + System.out.println("---------------------------"); + System.out.println(); + + //创建一个 `HashMap` 并添加至少3对键值对,键可以是字符串,值可以是整数。 + HashMap hashMap = new HashMap<>(); + hashMap.put("一",1); + hashMap.put("二",2); + hashMap.put("三",3); + System.out.println("初始数据(HashMap):"+hashMap); + System.out.println(); + + //使用键来获取对应的值,并打印出来。 + System.out.println("通过键“一”获取的值是: "+hashMap.get("一")); + System.out.println(); + + //检查一个特定的键是否存在于 `HashMap` 中。 + System.out.println("键“三”是否存在于hashMap中: "+hashMap.containsKey("三")); + System.out.println(); + + //遍历 `HashMap` 的键集合,并打印每个键。 + System.out.print("hashMap的每个键: "); + for (String s : hashMap.keySet()) { + System.out.print(s+" "); + } + System.out.println(); + System.out.println(); + + //遍历 `HashMap` 的值集合,并打印每个值。 + System.out.print("hashMap的每个值: "); + for (Integer value : hashMap.values()) { + System.out.print(value+" "); + } + System.out.println(); + System.out.println(); + + //使用 `entrySet()` 遍历 `HashMap` 的所有键值对,并打印。 + System.out.print("hashMap的所有键值: "); + for (Map.Entry stringIntegerEntry : hashMap.entrySet()) { + System.out.print(stringIntegerEntry+" "); + } + System.out.println(); + System.out.println(); + + //对一个已存在的键更新其对应的值。 + hashMap.put("一",520); + System.out.println("更新键“一”的值后:"+hashMap.get("一")); + System.out.println(); + + //移除一个特定的键值对,并确认它已被移除。 + hashMap.remove("三"); + System.out.print("删除键“三”之后的hashMap: "); + for (Map.Entry entry : hashMap.entrySet()) { + System.out.print(entry+" "); + } + System.out.println(); + System.out.println(); + + //打印出 `HashMap` 的大小。 + System.out.println("hashMap的大小: "+hashMap.size()); + System.out.println(); + + //创建一个泛型 `HashMap`,键为自定义对象,值为字符串,并添加键值对。 + HashMap studentStringHashMap = new HashMap<>(); + Student s1 = new Student("刘家鸿",19); + Student s2 = new Student("陈灿宇",19); + Student s3 = new Student("张三",19); + studentStringHashMap.put(s1,"闽西职业技术学院"); + studentStringHashMap.put(s2,"福建信息职业技术学院"); + studentStringHashMap.put(s3,"漳州职业技术学院"); + System.out.println("studentStringHashMap内的键值有: "); + Set keySet = studentStringHashMap.keySet(); + for (Student student : keySet) { + String value = studentStringHashMap.get(student); + System.out.println(student.getName()+","+student.getAge()+","+value); + } + } +} diff --git "a/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Person.java" "b/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Person.java" new file mode 100644 index 0000000000000000000000000000000000000000..bfe7bf1ba53e9cc1ea59a3c844ade610ba9eb445 --- /dev/null +++ "b/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Person.java" @@ -0,0 +1,49 @@ +package com.java.minxi.java_20240516.java_2302_刘家鸿_2344310227; + +import java.util.Objects; + +public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public Person() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Person person = (Person) o; + return age == person.age && Objects.equals(name, person.name); + } + +} diff --git "a/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" "b/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" new file mode 100644 index 0000000000000000000000000000000000000000..108d7e96378eef56aa4335e50669034d299feeab --- /dev/null +++ "b/work/com/java/minxi/java_20240516/java_2302_\345\210\230\345\256\266\351\270\277_2344310227/Work.java" @@ -0,0 +1,310 @@ +package com.java.minxi.java_20240516.java_2302_刘家鸿_2344310227; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Work { + public static void main(String[] args) throws ParseException { + //Object练习题: + //1. 重写 `toString` 方法 + // + //- 创建一个 `Person` 类,包含 `name` 和 `age` 属性。 + // 重写 `toString` 方法,使其返回一个字符串,包含对象的 `name` 和 `age`。 + Person p1 = new Person("刘家鸿",19); + System.out.println(p1.toString()); + System.out.println(); + + //2. 使用 `equals` 方法 + // - 在 `Person` 类中重写 `equals` 方法,使得可以通过 `name` 和 `age` 属性比较两个 `Person` 对象是否相等。 + Person p2 = new Person("刘家鸿",19); + System.out.println("p1和p2是否相等: "+p1.equals(p2)); + System.out.println(); + + System.out.println("---------------------------------"); + + System.out.println(); + //`Math` 类练习题: + //1. 绝对值 + // - 编写一个程序,接受一个用户输入的数字,然后输出该数字的绝对值。 + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个数字:"); + int i = sc.nextInt(); + System.out.println(i+"的绝对值: "+Math.abs(i)); + System.out.println(); + + //2. 最小值和最大值 + // - 创建一个方法,接受三个整数作为参数,返回这三个整数中的最小值和最大值。 + contains(); + + //3. 四舍五入 + // - 编写一个程序,接受一个浮点数作为输入,并将其四舍五入到最近的整数。 + System.out.println("请输入一个浮点数:"); + float nextFloat = sc.nextFloat(); + System.out.println(nextFloat+"四舍五入后: "+Math.round(nextFloat)); + System.out.println(); + + //4. 随机数生成 + // - 使用 `Math.random()` 方法生成一个 0 到 1 之间的随机数,并将其乘以一个用户指定的最大值。 + double random = Math.random(); + System.out.println("请输入一个数字乘以`Math.random()`:"); + double v = sc.nextDouble(); + System.out.println(random+" * "+v+" = "+random*v); + System.out.println(); + + //5. 计算平均值 + // - 创建一个方法,接受一个整数数组,并返回数组的平均值。 + Double avg = getAvg(); + System.out.println("该数组的平均值: "+ avg); + System.out.println(); + + System.out.println("---------------------------------"); + + System.out.println(); + //`Date` 类练习题: + //1. 创建 Date 对象 + // - 编写一个程序,创建一个 `Date` 对象,表示当前时间。 + + //获取时间对象 + ZonedDateTime now = ZonedDateTime.now(); + // 解析/格式化器 + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss EE a"); + //输出格式化 + System.out.println("现在时间: "+dateTimeFormatter.format(now)); + System.out.println(); + + //2. 获取 Date 对象的年份、月份、天数等 + // - 创建一个方法,接受一个 `Date` 对象作为参数,返回该日期的年份、月份和天数。 + LocalDate now1 = LocalDate.now(); + System.out.println(now1+"的年份:"+now1.getYear()); + System.out.println(now1+"的月份:"+now1.getMonth()); + System.out.println(now1+"的天数:"+now1.getDayOfMonth()); + System.out.println(); + + //3. 格式化 Date 对象 + // - 使用 `SimpleDateFormat` 类将 `Date` 对象格式化为指定的日期格式字符串,如 "yyyy-MM-dd HH:mm:ss"。 + Date date = new Date(0L); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format = simpleDateFormat.format(date); + System.out.println("使用 `SimpleDateFormat` 类将 `Date` 对象格式化为指定的日期格式字符串,如 \"yyyy-MM-dd HH:mm:ss\": "+format); + System.out.println(); + + //4. Date 转字符串再转回 Date + // - 实现一个程序,将 `Date` 对象转换为字符串,然后将该字符串重新解析回 `Date` 对象。 + SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(); + Date date1 = new Date(0L); + String format1 = simpleDateFormat1.format(date1); + System.out.println("将 `Date` 对象转换为字符串: "+ format1); + Date format2 = simpleDateFormat1.parse(format1); + System.out.println("将该字符串重新解析回 `Date` 对象: "+format2); + System.out.println(); + + //5. System类使用 + // - 使用System类获得当前时间戳,将时间戳转换成`Date` 对象,要求按照该格式 "yyyy-MM-dd HH:mm:ss" 打印出当前时间。 + long l = System.currentTimeMillis(); + Date date2 = new Date(l); + SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format3 = simpleDateFormat2.format(date2); + System.out.println("使用System类获得当前时间戳,将时间戳转换成`Date` 对象,要求按照该格式 \"yyyy-MM-dd HH:mm:ss\" 打印出当前时间: "+format3); + System.out.println(); + + System.out.println("---------------------------------"); + + System.out.println(); + + //`String`类练习题: + //1. 字符串连接 + //- 编写一个程序,连接两个字符串,并输出结果。 + String s = "张三"; + System.out.println("连接两个字符串,并输出结果: "+s.concat("法外狂徒")); + System.out.println(); + + //2. 字符串长度 + // - 创建一个方法,接受一个字符串作为参数,返回该字符串的长度。 + getStrLength(); + //3. 字符串分割 + // - 编写一个程序,将一个以逗号分隔的字符串分割成单词数组。 + String str = "zhangsan,lisi,wangwu"; + String[] split = str.split(","); + System.out.print("将一个以逗号分隔的字符串分割成单词数组: ["); + for (int i1 = 0; i1 < split.length; i1++) { + if (i1!= split.length-1){ + System.out.print(split[i1]+", "); + }else{ + System.out.print(split[i1]); + } + } + System.out.println("]"); + System.out.println(); + + //4. 字符串反转 + // - 实现一个方法,接受一个字符串作为参数,并返回其反转后的字符串。 + String str1 = "abc"; + System.out.println(str1+"反转之后: "+reverse(str1)); + System.out.println(); + + //5. 字符串大小写转换 + // - 创建一个方法,将输入的字符串转换为全小写或全大写。 + upCase(); + //6. 字符串搜索 + // - 编写一个程序,检查一个字符串是否包含另一个字符串。 + String str2 = "abcd"; + if (str2.indexOf("ab")!=-1){ + System.out.println(str2+" 中存在 ab"); + }else{ + System.out.println(str2+" 中不存在 ab"); + } + System.out.println(); + //7. 字符串替换 + // - 实现一个方法,将字符串中的所有指定字符替换为另一个字符。 + String falseStr = "CNM玩的什么啊"; + falseStr=falseStr.replace("CNM","***"); + System.out.println(falseStr); + System.out.println(); + + //8. 字符串修剪 + // - 创建一个方法,去除字符串两端的空白字符。 + String s1 = " Hello World "; + System.out.println("去除字符串两端的空白字符:"+s1.trim()); + System.out.println(); + + //9. 字符串比较 + // - 编写一个程序,比较两个字符串是否相等,忽略大小写。 + String strOne = "Asq1"; + String strtwo = "aSQ1"; + System.out.println("比较两个字符串是否相等,忽略大小写: "+strOne.equalsIgnoreCase(strtwo)); + //10. 子串操作 + // - 实现一个方法,提取一个字符串中指定范围内的子串。 + String text = "Hello World"; + System.out.println("提取一个字符串中4-7索引的子串:"+text.substring(4, 7)); + System.out.println(); + + //11. 字符串结束符检查 + // - 编写一个程序,检查一个字符串是否以特定的后缀结束。 + String textEnd = "闽西职业技术学院"; + System.out.println(textEnd+"是否以“职业技术学院”结尾: "+textEnd.endsWith("职业技术学院")); + System.out.println(); + + + //12. 字符串开始符检查 + // - 实现一个方法,检查一个字符串是否以特定的前缀开始。 + String college = "厦门理工学院"; + System.out.println(college+"是否以“厦门”开始: "+college.startsWith("厦门")); + System.out.println(); + + //13. 字符串中字符的出现次数 + // - 编写一个程序,计算一个字符在字符串中出现的次数。 + String essay = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11," + + "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台"; + Pattern regex = Pattern.compile("Java"); + Matcher m =regex.matcher(essay); + int count = 0; + while (m.find()){ + count++; + } + System.out.println("Java 在字符串中出现的次数: "+count); + System.out.println(); + //14. 字符串与数字的转换 + // - 创建一个方法,将字符串转换为相应的整数或浮点数,反之亦然。 + BigDecimal num = new BigDecimal("19"); + System.out.println(num+"转换为相应的整数或浮点数"+num.floatValue()); + String e = String.valueOf(num); + System.out.println(num+"转换为相应的字符串: "+e); + System.out.println(); + + //15. StringBuilder拼接 + // - 自定义三个字符串常量,使用 StringBuilder将这三个字符串拼接并输出。 + StringBuilder sb = new StringBuilder(); + String one = "A"; + String two = "B"; + String three = "C"; + System.out.println("使用 StringBuilder将这三个字符串拼接并输出: "+sb.append(one).append(two).append(three)); + System.out.println(); + + //**`BigDecimal` 类练习题:** + //1. 创建 BigDecimal 对象 + // - 编写一个程序,使用字符串构造函数创建一个 `BigDecimal` 对象。 + BigDecimal b1 = new BigDecimal("123.543"); + System.out.println("使用字符串构造函数创建一个 `BigDecimal` 对象: "+b1); + System.out.println(); + //2. 基本算术运算 + // - 实现一个方法,接受两个 `BigDecimal` 对象作为参数,执行加、减、乘、除运算。 + BigDecimal b2 = new BigDecimal("10"); + BigDecimal b3 = new BigDecimal("50"); + System.out.println(b2+" + "+b3+" = "+b2.add(b3)); + System.out.println(b2+" - "+b3+" = "+b2.subtract(b3)); + System.out.println(b2+" * "+b3+" = "+b2.multiply(b3)); + System.out.println(b2+" / "+b3+" = "+b2.divide(b3)); + System.out.println(); + //3. 舍入操作 + // - 编写一个程序,对一个 `BigDecimal` 对象执行舍入操作,指定舍入模式和精度。 + System.out.println("对"+b2+"执行舍入操作, 四舍五入,保留两位小数: "+b2.divide(BigDecimal.valueOf(3), 2, RoundingMode.HALF_UP)); + System.out.println(); + //4. 比较 BigDecimal 对象值 + // - 创建一个方法,比较两个 `BigDecimal` 对象的值是否相等。 + // - 创建一个方法,比较两个 `BigDecimal` 对象的值大小。 + System.out.println("比较"+b2+"和"+b3+"的值是否相等: "+b2.equals(b3)); + System.out.println(); + System.out.println("比较"+b2+"和"+b3+"的值的大小: (负数: 小于 正数: 大于 0:等于)"+b2.compareTo(b3)); + } + + private static void getStrLength() { + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个字符串:"); + String next = sc.next(); + System.out.println("”"+next+"“的长度是: "+next.length()); + System.out.println(); + } + + public static void contains(){ + Scanner sc = new Scanner(System.in); + System.out.println("请输入第一个整数:"); + int i1 = sc.nextInt(); + System.out.println("请输入第二个整数:"); + int i2 = sc.nextInt(); + System.out.println("请输入第三个整数:"); + int i3 = sc.nextInt(); + System.out.println("最大值: "+Math.max(Math.max(i1,i2),i3)); + System.out.println("最小值: "+Math.min(Math.min(i1,i2),i3)); + System.out.println(); + } + + public static Double getAvg(){ + int[] numArr = {1,2,3,4,5,6,7,8,9,10}; + double num = 0; + for (int i = 0; i < numArr.length; i++) { + num += numArr[i]; + } + num/=numArr.length; + return num; + } + + public static String reverse(String str){ + String s = ""; + for (int i = str.length() - 1; i >= 0; i--) { + s = s + str.charAt(i); + } + return s; + + } + + public static void upCase(){ + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个字符串:"); + String next = sc.next(); + System.out.println(next+" 转换为大写:"+next.toUpperCase()); + System.out.println(); + } + +}