Java基础-常用类

news2024/9/30 15:29:09

文章目录

    • 1.Math类
    • 2.System类
        • 1.exit
          • 代码
        • 结果
        • 2.arraycopy
          • 参数解释
          • 代码
          • 结果
        • 3.currentTimeMillens
          • 代码
          • 结果
    • 3.大数处理方案
        • 基本介绍
        • BigInteger类
          • 介绍
          • 代码
          • 结果
        • BigDecimal类
          • 介绍
          • 代码
          • 结果
    • 4.日期类
        • 对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/img_convert/6d285b7dfa10bddec5ba6b8b3c59776f.png)
        • 第一代日期类
          • 代码
          • 结果
        • 第二代日期类(Calendar)
          • 基本介绍
          • 代码
          • 结果
        • 第三代日期类
          • 基本使用
          • 进阶使用
    • 5.章节练习
        • 练习一
          • 题目
          • 代码
          • 结果
        • 练习二
          • 题目
          • 代码
          • 结果
        • 练习三
          • 题目
          • 代码
          • 结果
        • 练习四
          • 题目
          • 代码
          • 结果
        • 练习五
          • 题目
          • 代码
          • 结果
  • 常用类
    • 1.Math类
    • 2.System类
        • 1.exit
          • 代码
        • 结果
        • 2.arraycopy
          • 参数解释
          • 代码
          • 结果
        • 3.currentTimeMillens
          • 代码
          • 结果
    • 3.大数处理方案
        • 基本介绍
        • BigInteger类
          • 介绍
          • 代码
          • 结果
        • BigDecimal类
          • 介绍
          • 代码
          • 结果
    • 4.日期类
        • 对于IDEA类图中的属性![image-20240101190844530](https://img-blog.csdnimg.cn/img_convert/9e65cace4e31b884a7fa4185678dbe73.png)
        • 第一代日期类
          • 代码
          • 结果
        • 第二代日期类(Calendar)
          • 基本介绍
          • 代码
          • 结果
        • 第三代日期类
          • 基本使用
          • 进阶使用
    • 5.章节练习
        • 练习一
          • 题目
          • 代码
          • 结果
        • 练习二
          • 题目
          • 代码
          • 结果
        • 练习三
          • 题目
          • 代码
          • 结果
        • 练习四
          • 题目
          • 代码
          • 结果
        • 练习五
          • 题目
          • 代码
          • 结果

1.Math类

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Math_ {
    public static void main(String[] args) {
        //1.abs 绝对值
        int abs = Math.abs(-9);
        System.out.println(abs);

        //2.pow 求幂
        double pow = Math.pow(2, 10);
        System.out.println(pow);

        //3.ceil 向上取整,返回>=该参数的最小整数
        double ceil = Math.ceil(3.1);
        System.out.println(ceil);

        //4.floor 向下取整,返回<=该参数的最小整数
        double floor = Math.floor(3.8);
        System.out.println(floor);

        //5.round 四舍五入
        long round = Math.round(-5000.67);
        System.out.println(round);

        //6.sqrt 求开方
        double sqrt = Math.sqrt(9.0);
        System.out.println(sqrt);

        //求2-7的随机数
        for (int i = 0; i < 10; i++) {
            System.out.println(2 + (int) (Math.random() * 6)); //2 + 0到5就是2到7
        }
    }
}

2.System类

image-20240101163902484

1.exit
代码
package system_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class System_ {
    public static void main(String[] args) {
        // exit 退出当前程序
        System.out.println("1");
        System.exit(0); //正常情况退出
        System.out.println("2");
    }
}

结果

image-20240101163945623

2.arraycopy
参数解释

image-20240101164126728

代码
package system_;

import java.util.Arrays;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class System_ {
    public static void main(String[] args) {
        int[] src = new int[]{1,2,3};
        int[] dest = new int[3];
        System.arraycopy(src, 0, dest, 0, src.length); //从src数组的0位置复制到dest的0位置,复制src的所有元素
        System.out.println(Arrays.toString(dest));
    }
}

结果

image-20240101164507525

3.currentTimeMillens
代码
package system_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class CurrentTimeMillens {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
    }
}

结果

image-20240101190102867

3.大数处理方案

基本介绍

image-20240101183101947

BigInteger类
介绍
  1. 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
package bignum;

import java.math.BigInteger;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class BigInteger_ {
    public static void main(String[] args) {
        BigInteger bigInteger = new BigInteger("33333333333333333333333333333333333333333333333333333333333333");
        System.out.println(bigInteger);
        BigInteger bigInteger1 = new BigInteger("1111111111111111");
        //加法
        BigInteger add = bigInteger.add(bigInteger1);
        //减法
        BigInteger subtract = bigInteger.subtract(bigInteger1);
        //乘法
        BigInteger multiply = bigInteger.multiply(bigInteger1);
        //除法
        BigInteger divide = bigInteger.divide(bigInteger1);
        System.out.println("add = " + add);
        System.out.println("subtract = " + subtract);
        System.out.println("multiply = " + multiply);
        System.out.println("divide = " + divide);

    }
}

结果

image-20240101184154530

BigDecimal类
介绍
  1. 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
  3. 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,BigDecimal.ROUND_CEILING,就会截取与子类相同长度的精度
代码
package bignum;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class BigDecimal_ {
    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("1999.123323213218888888");
        BigDecimal bigDecimal1 = new BigDecimal("2");
        //加法
        BigDecimal add = bigDecimal.add(bigDecimal1);
        //减法
        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);
        //乘法
        BigDecimal multiply = bigDecimal.multiply(bigDecimal1);
        //除法
        BigDecimal divide = bigDecimal.divide(bigDecimal1, BigDecimal.ROUND_CEILING); //添加参数,避免除不尽的情况
        //输出这四个结果
        System.out.println("add = " + add);
        System.out.println("subtract = " + subtract);
        System.out.println("multiply = " + multiply);
        System.out.println("divide = " + divide);
    }
}

结果

image-20240101184956856

4.日期类

对于IDEA类图中的属性image-20240101190844530

如果有getter或者setter方法则表明这个方法后面的名字为属性

第一代日期类
代码
package date_;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date01 {
    public static void main(String[] args) throws ParseException {
        Date date = new Date(); //获取当前系统时间
        System.out.println("当前日期为:" + date);
        Date date1 = new Date(1232134343); //通过毫秒数来确定时间,毫秒数加上1970年
        System.out.println("日期为:" + date1);

        //创建简单日期格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm:ss E");
        String format = sdf.format(date); // 把当前日期格式化一下然后给一个字符串
        System.out.println("格式化之后的日期为:" + format);

        //把一个格式化的String转换成对应的Date
        String s = "2024年 01月 01日 07:24:21: 星期一";
        Date parse = sdf.parse(s); //这里会有异常的问题,直接alt + Enter抛出异常即可
        System.out.println("转换后的日期为:" + parse);

    }
}

结果

image-20240101193048893

第二代日期类(Calendar)
基本介绍
  1. Calendar是一个抽象类,并且构造器是私有的
  2. 可以通过getInstance来获取实例
代码
package date_;

import java.util.Calendar;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date02 {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(); //获取当前日期
        System.out.println("c = " + c);
        //获取日历对象的某个日历字段
        System.out.println("年:" + c.get(Calendar.YEAR));
        System.out.println("月:" + (c.get(Calendar.MONTH)+ 1)); //加一的原因是这个月份是从0开始的
        System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:" + c.get(Calendar.HOUR));
        System.out.println("分:" + c.get(Calendar.MINUTE));
        System.out.println("秒:" + c.get(Calendar.SECOND));
        //输出获取的时间的组合
        System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+ 1) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日" + c.get(Calendar.HOUR) + "时" + c.get(Calendar.MINUTE) + "分" + c.get(Calendar.SECOND) + "秒");
    }
}

结果

image-20240101195510128

第三代日期类
基本使用
package date_;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date03 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now(); //获取目前的时间
        System.out.println(now);
        //单独获取年月日,时分秒
        System.out.println("年 = " + now.getYear());
        System.out.println("月 = " + now.getMonth()); //英文的
        System.out.println("月 = " + now.getMonthValue()); //中文的
        System.out.println("日 = " + now.getDayOfMonth());
        System.out.println("时 = " + now.getHour());
        System.out.println("分 = " + now.getMinute());
        System.out.println("秒 = " + now.getSecond());

        LocalDate now1 = LocalDate.now(); //只可以获取年月日
        LocalTime now2 = LocalTime.now(); //只可以获取时分秒

    }
}

image-20240102191105204

进阶使用
package date_;

import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date04 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        //格式化日期类
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //设置格式
        String format = dateTimeFormatter.format(now); //格式化
        System.out.println(format);

        //时间戳与Date之间的转换
        Instant now1 = Instant.now(); //获取时间戳
        System.out.println(now1);
        java.util.Date from = Date.from(now1); //时间戳 - > Date
        Instant instant = from.toInstant(); //Date - > 时间戳

        //提供plus 和 minus方法来对当前时间进行加减
        LocalDateTime localDateTime = now.plusDays(89); //当前时间加上89天
        String format1 = dateTimeFormatter.format(localDateTime);
        System.out.println(format1);

        LocalDateTime localDateTime1 = now.minusMinutes(60); //当前时间减去60分钟
        String format2 = dateTimeFormatter.format(localDateTime1);
        System.out.println(format2);
    }
}

image-20240102195303280

5.章节练习

练习一
题目

image-20240102212338445

代码
package homework11_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork01 {
    public static void main(String[] args) {
        System.out.println("反转前:" + "abcdef");
        String res = null;
        try {
            res = reverse("abcdef",1,1);
        } catch (Exception e) {
            System.out.println(e.getMessage()); //抛出异常后这里就可以抓住异常
            System.exit(-1); //出异常之后,反转后的代码就没有必要继续执行了,所以直接返回
        }
        System.out.println("反转后:" + res);
    }
    public static String reverse(String str, int start, int end) {
        //对参数做一个验证,将正确的写出来然后再取反就可以
        if (!(str != null && start >= 0 && end > start && end < str.length())) {
            throw new RuntimeException("参数不正确");
        }
        String s = str.substring(start, end + 1); //截取出来需要翻转的部分
        char[] charArray = s.toCharArray();
        char temp;
        for (int i = 0; i <= charArray.length / 2 - 1; i++) { //进行反转
            temp = charArray[i];
            charArray[i] = charArray[charArray.length - i - 1];
            charArray[charArray.length - i - 1] = temp;
        }
        String re = new String(charArray); //将反转好的部分转化成String类型
        StringBuilder stringBuilder = new StringBuilder(str); //转换成StringBuilder进行字符替换
        stringBuilder.replace(start, end + 1, re); //将反转好的部分进行替换
        return stringBuilder.toString();
    }
}

结果

image-20240102212427459

练习二
题目

image-20240103095119668

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork02 {
    public static void main(String[] args) {
        try {
            judgement();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    public static void judgement() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.next();
        //进行检验
        if (username.length() > 4 || username.length() < 2) {
            throw new RuntimeException("用户名输入有误");
        }
        System.out.println("请输入密码:");
        String password = scanner.next();
        boolean res = true;
        //判断是否都是数字
        for (char c: password.toCharArray()) {
            if (!Character.isDigit(c)) {
                res = false;
            }
        }
        if (!(res && password.length() == 6)) {
            throw new RuntimeException("密码输入有误");
        }
        System.out.println("请输入邮箱:");
        String mailbox = scanner.next();
        int a = mailbox.indexOf('@');
        int b = mailbox.indexOf('.');
        if (!(a >= 0 && a < b)) {
            throw new RuntimeException("邮箱输入有误");
        }
    }
}


结果

image-20240103095222845

练习三
题目

image-20240103100709580

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入人名,以空格分隔");
        String s = scanner.nextLine();
        String[] split = s.split(" "); //以空格分隔
        char s2 = split[1].charAt(0); //取出第二个元素的首字母
        String res = split[2].concat(",").concat(split[0]).concat(".").concat(String.valueOf(s2));
        System.out.println(res);
    }
}

结果

image-20240103100736411

练习四
题目

image-20240103100813181

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = scanner.next();
        int big = 0;
        int small = 0;
        int number = 0;
        int other = 0;
        //按照ascii表来判断
        char[] charArray = str.toCharArray();
        for (char c:
             charArray) {
            if (c >= 'A' && c <= 'Z') {
                big ++;
            } else if (c >= 'a' && c <= 'z') {
                small ++;
            } else if (c >= '0' && c <= '9') {
                number ++;
            }else {
                other ++;
            }
        }
        System.out.println("大写:" + big + " 小写:" + small + " 数字:" + number + " 其余:" + other);
    }
}

结果

image-20240103101839746

练习五
题目

image-20240103101913835

代码
package homework11_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork05 {
    public static void main(String[] args) {
        String s1 = "hspedu";
        Animal a = new Animal(s1);
        Animal b = new Animal(s1);
        System.out.println(a == b); // a跟b指向的是两个不同的实例所以是false
        System.out.println(a.equals(b)); // a跟b不是同一个对象所以返回false
        System.out.println(a.name == b.name); //比较的是这两个String类型的引用指向的都是常量池中的同一个”hspedu“,所以返回true

        String s4 = new String("hspedu");
        String s5 = "hspedu";
        System.out.println(s1 == s4); //一个指向常量池,一个指向对象,所以返回false
        System.out.println(s4 == s5); //false

        String t1 = "hello" + s1; //两个字符串相加,其中包含字符串变量,则会返回一个新的String类型的对象
        String t2 = "hellohspedu"; //直接在常量池中找到刚才创建的
        System.out.println(t1.intern() == t2); //true
        System.out.println(t1 == t2); //false,因为t1是一个对象,t2是指向常量池
    }
}
class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }
}

结果

image-20240103103812392

常用类

1.Math类

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Math_ {
    public static void main(String[] args) {
        //1.abs 绝对值
        int abs = Math.abs(-9);
        System.out.println(abs);

        //2.pow 求幂
        double pow = Math.pow(2, 10);
        System.out.println(pow);

        //3.ceil 向上取整,返回>=该参数的最小整数
        double ceil = Math.ceil(3.1);
        System.out.println(ceil);

        //4.floor 向下取整,返回<=该参数的最小整数
        double floor = Math.floor(3.8);
        System.out.println(floor);

        //5.round 四舍五入
        long round = Math.round(-5000.67);
        System.out.println(round);

        //6.sqrt 求开方
        double sqrt = Math.sqrt(9.0);
        System.out.println(sqrt);

        //求2-7的随机数
        for (int i = 0; i < 10; i++) {
            System.out.println(2 + (int) (Math.random() * 6)); //2 + 0到5就是2到7
        }
    }
}

2.System类

image-20240101163902484

1.exit
代码
package system_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class System_ {
    public static void main(String[] args) {
        // exit 退出当前程序
        System.out.println("1");
        System.exit(0); //正常情况退出
        System.out.println("2");
    }
}

结果

image-20240101163945623

2.arraycopy
参数解释

image-20240101164126728

代码
package system_;

import java.util.Arrays;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class System_ {
    public static void main(String[] args) {
        int[] src = new int[]{1,2,3};
        int[] dest = new int[3];
        System.arraycopy(src, 0, dest, 0, src.length); //从src数组的0位置复制到dest的0位置,复制src的所有元素
        System.out.println(Arrays.toString(dest));
    }
}

结果

image-20240101164507525

3.currentTimeMillens
代码
package system_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class CurrentTimeMillens {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
    }
}

结果

image-20240101190102867

3.大数处理方案

基本介绍

image-20240101183101947

BigInteger类
介绍
  1. 在编程中,如果需要处理很大的整数,long不够用, 则交给BigInteger来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
代码
package bignum;

import java.math.BigInteger;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class BigInteger_ {
    public static void main(String[] args) {
        BigInteger bigInteger = new BigInteger("33333333333333333333333333333333333333333333333333333333333333");
        System.out.println(bigInteger);
        BigInteger bigInteger1 = new BigInteger("1111111111111111");
        //加法
        BigInteger add = bigInteger.add(bigInteger1);
        //减法
        BigInteger subtract = bigInteger.subtract(bigInteger1);
        //乘法
        BigInteger multiply = bigInteger.multiply(bigInteger1);
        //除法
        BigInteger divide = bigInteger.divide(bigInteger1);
        System.out.println("add = " + add);
        System.out.println("subtract = " + subtract);
        System.out.println("multiply = " + multiply);
        System.out.println("divide = " + divide);

    }
}

结果

image-20240101184154530

BigDecimal类
介绍
  1. 在编程中,如果需要处理很大的浮点数,double不够用,则交给BigDecimal来处理
  2. 在对这个类进行操作的时候不能直接使用加减乘除的符号,要使用特定的方法
  3. 在遇到除不开的数的时候可能会抛出异常,此时就增加参数,BigDecimal.ROUND_CEILING,就会截取与子类相同长度的精度
代码
package bignum;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class BigDecimal_ {
    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("1999.123323213218888888");
        BigDecimal bigDecimal1 = new BigDecimal("2");
        //加法
        BigDecimal add = bigDecimal.add(bigDecimal1);
        //减法
        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);
        //乘法
        BigDecimal multiply = bigDecimal.multiply(bigDecimal1);
        //除法
        BigDecimal divide = bigDecimal.divide(bigDecimal1, BigDecimal.ROUND_CEILING); //添加参数,避免除不尽的情况
        //输出这四个结果
        System.out.println("add = " + add);
        System.out.println("subtract = " + subtract);
        System.out.println("multiply = " + multiply);
        System.out.println("divide = " + divide);
    }
}

结果

image-20240101184956856

4.日期类

对于IDEA类图中的属性image-20240101190844530

如果有getter或者setter方法则表明这个方法后面的名字为属性

第一代日期类
代码
package date_;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date01 {
    public static void main(String[] args) throws ParseException {
        Date date = new Date(); //获取当前系统时间
        System.out.println("当前日期为:" + date);
        Date date1 = new Date(1232134343); //通过毫秒数来确定时间,毫秒数加上1970年
        System.out.println("日期为:" + date1);

        //创建简单日期格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm:ss E");
        String format = sdf.format(date); // 把当前日期格式化一下然后给一个字符串
        System.out.println("格式化之后的日期为:" + format);

        //把一个格式化的String转换成对应的Date
        String s = "2024年 01月 01日 07:24:21: 星期一";
        Date parse = sdf.parse(s); //这里会有异常的问题,直接alt + Enter抛出异常即可
        System.out.println("转换后的日期为:" + parse);

    }
}

结果

image-20240101193048893

第二代日期类(Calendar)
基本介绍
  1. Calendar是一个抽象类,并且构造器是私有的
  2. 可以通过getInstance来获取实例
代码
package date_;

import java.util.Calendar;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date02 {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(); //获取当前日期
        System.out.println("c = " + c);
        //获取日历对象的某个日历字段
        System.out.println("年:" + c.get(Calendar.YEAR));
        System.out.println("月:" + (c.get(Calendar.MONTH)+ 1)); //加一的原因是这个月份是从0开始的
        System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:" + c.get(Calendar.HOUR));
        System.out.println("分:" + c.get(Calendar.MINUTE));
        System.out.println("秒:" + c.get(Calendar.SECOND));
        //输出获取的时间的组合
        System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+ 1) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日" + c.get(Calendar.HOUR) + "时" + c.get(Calendar.MINUTE) + "分" + c.get(Calendar.SECOND) + "秒");
    }
}

结果

image-20240101195510128

第三代日期类
基本使用
package date_;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date03 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now(); //获取目前的时间
        System.out.println(now);
        //单独获取年月日,时分秒
        System.out.println("年 = " + now.getYear());
        System.out.println("月 = " + now.getMonth()); //英文的
        System.out.println("月 = " + now.getMonthValue()); //中文的
        System.out.println("日 = " + now.getDayOfMonth());
        System.out.println("时 = " + now.getHour());
        System.out.println("分 = " + now.getMinute());
        System.out.println("秒 = " + now.getSecond());

        LocalDate now1 = LocalDate.now(); //只可以获取年月日
        LocalTime now2 = LocalTime.now(); //只可以获取时分秒

    }
}

image-20240102191105204

进阶使用
package date_;

import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class Date04 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        //格式化日期类
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //设置格式
        String format = dateTimeFormatter.format(now); //格式化
        System.out.println(format);

        //时间戳与Date之间的转换
        Instant now1 = Instant.now(); //获取时间戳
        System.out.println(now1);
        java.util.Date from = Date.from(now1); //时间戳 - > Date
        Instant instant = from.toInstant(); //Date - > 时间戳

        //提供plus 和 minus方法来对当前时间进行加减
        LocalDateTime localDateTime = now.plusDays(89); //当前时间加上89天
        String format1 = dateTimeFormatter.format(localDateTime);
        System.out.println(format1);

        LocalDateTime localDateTime1 = now.minusMinutes(60); //当前时间减去60分钟
        String format2 = dateTimeFormatter.format(localDateTime1);
        System.out.println(format2);
    }
}

image-20240102195303280

5.章节练习

练习一
题目

image-20240102212338445

代码
package homework11_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork01 {
    public static void main(String[] args) {
        System.out.println("反转前:" + "abcdef");
        String res = null;
        try {
            res = reverse("abcdef",1,1);
        } catch (Exception e) {
            System.out.println(e.getMessage()); //抛出异常后这里就可以抓住异常
            System.exit(-1); //出异常之后,反转后的代码就没有必要继续执行了,所以直接返回
        }
        System.out.println("反转后:" + res);
    }
    public static String reverse(String str, int start, int end) {
        //对参数做一个验证,将正确的写出来然后再取反就可以
        if (!(str != null && start >= 0 && end > start && end < str.length())) {
            throw new RuntimeException("参数不正确");
        }
        String s = str.substring(start, end + 1); //截取出来需要翻转的部分
        char[] charArray = s.toCharArray();
        char temp;
        for (int i = 0; i <= charArray.length / 2 - 1; i++) { //进行反转
            temp = charArray[i];
            charArray[i] = charArray[charArray.length - i - 1];
            charArray[charArray.length - i - 1] = temp;
        }
        String re = new String(charArray); //将反转好的部分转化成String类型
        StringBuilder stringBuilder = new StringBuilder(str); //转换成StringBuilder进行字符替换
        stringBuilder.replace(start, end + 1, re); //将反转好的部分进行替换
        return stringBuilder.toString();
    }
}

结果

image-20240102212427459

练习二
题目

image-20240103095119668

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork02 {
    public static void main(String[] args) {
        try {
            judgement();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    public static void judgement() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.next();
        //进行检验
        if (username.length() > 4 || username.length() < 2) {
            throw new RuntimeException("用户名输入有误");
        }
        System.out.println("请输入密码:");
        String password = scanner.next();
        boolean res = true;
        //判断是否都是数字
        for (char c: password.toCharArray()) {
            if (!Character.isDigit(c)) {
                res = false;
            }
        }
        if (!(res && password.length() == 6)) {
            throw new RuntimeException("密码输入有误");
        }
        System.out.println("请输入邮箱:");
        String mailbox = scanner.next();
        int a = mailbox.indexOf('@');
        int b = mailbox.indexOf('.');
        if (!(a >= 0 && a < b)) {
            throw new RuntimeException("邮箱输入有误");
        }
    }
}


结果

image-20240103095222845

练习三
题目

image-20240103100709580

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入人名,以空格分隔");
        String s = scanner.nextLine();
        String[] split = s.split(" "); //以空格分隔
        char s2 = split[1].charAt(0); //取出第二个元素的首字母
        String res = split[2].concat(",").concat(split[0]).concat(".").concat(String.valueOf(s2));
        System.out.println(res);
    }
}

结果

image-20240103100736411

练习四
题目

image-20240103100813181

代码
package homework11_;

import java.util.Scanner;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = scanner.next();
        int big = 0;
        int small = 0;
        int number = 0;
        int other = 0;
        //按照ascii表来判断
        char[] charArray = str.toCharArray();
        for (char c:
             charArray) {
            if (c >= 'A' && c <= 'Z') {
                big ++;
            } else if (c >= 'a' && c <= 'z') {
                small ++;
            } else if (c >= '0' && c <= '9') {
                number ++;
            }else {
                other ++;
            }
        }
        System.out.println("大写:" + big + " 小写:" + small + " 数字:" + number + " 其余:" + other);
    }
}

结果

image-20240103101839746

练习五
题目

image-20240103101913835

代码
package homework11_;

/**
 * @author 孙显圣
 * @version 1.0
 */
public class HomeWork05 {
    public static void main(String[] args) {
        String s1 = "hspedu";
        Animal a = new Animal(s1);
        Animal b = new Animal(s1);
        System.out.println(a == b); // a跟b指向的是两个不同的实例所以是false
        System.out.println(a.equals(b)); // a跟b不是同一个对象所以返回false
        System.out.println(a.name == b.name); //比较的是这两个String类型的引用指向的都是常量池中的同一个”hspedu“,所以返回true

        String s4 = new String("hspedu");
        String s5 = "hspedu";
        System.out.println(s1 == s4); //一个指向常量池,一个指向对象,所以返回false
        System.out.println(s4 == s5); //false

        String t1 = "hello" + s1; //两个字符串相加,其中包含字符串变量,则会返回一个新的String类型的对象
        String t2 = "hellohspedu"; //直接在常量池中找到刚才创建的
        System.out.println(t1.intern() == t2); //true
        System.out.println(t1 == t2); //false,因为t1是一个对象,t2是指向常量池
    }
}
class Animal {
    String name;

    public Animal(String name) {
        this.name = name;
    }
}

结果

image-20240103103812392

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习 考证 帆软 FCP-FineBI V6.0 考试经验

学习背景&#xff1a; 自2024年1月起&#xff0c;大部分时间就在家里度过了&#xff0c;想着还是需要充实一下自己&#xff0c;我是一个充满热情的个体。由于之前公司也和帆软结缘&#xff0c;无论是 Fine-Report 和 Fine-BI 都有接触3年之久&#xff0c;但是主要做为管理者并…

使用Python进行自动化测试Selenium与PyTest的结合【第150篇—自动化测试】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行自动化测试&#xff1a;Selenium与PyTest的结合 在软件开发中&#xff0c;自…

Linux 常用命令 1

Tips&#xff1a;终端热键ctrl shift 放大终端窗口的字体 ctrl - 缩小终端窗口的字体 注意区分大小写 查阅命令帮助信息&#xff1a; 1&#xff09;--help command –help(两个减号) 显示command命令的帮助信息 2&#xff09;man man command 查阅command命令的使…

java数据结构与算法刷题-----LeetCode75. 颜色分类

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 双指针两次遍历2. 三指针 1. 双指针两次遍历 解题思路&#…

linux下线程分离属性

linux下线程分离属性 一、线程的属性---分离属性二、线程属性设置2.1 线程创建前设置分离属性2.2 线程创建后设置分离属性 一、线程的属性—分离属性 什么是分离属性&#xff1f; 首先分离属性是线程的一个属性&#xff0c;有了分离属性的线程&#xff0c;不需要别的线程去接合…

YOLOv8 | 网络结构 | 详细讲解YOLOv8的网络结构

⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:http://t.csdnimg.cn/70xZa YOLOv8涨点专栏:http://t.csdnimg.cn/Cb89a YOLOv7专栏:http://t.csdnimg.cn/HaTdn 💡魔改网络、复现论文、优化创新💡 …

风靡全球的WEB3街头时尚品牌Hape正式启动2024年回到街头系列活动

什么是「街头」 是永不畏惧的竞技精神 是肆意生长的野性力量 是色彩绮丽的感官世界 3月23日&#xff01; 跟随Hape的节奏&#xff0c;领略最原始纯粹的街头文化&#xff0c;在Yolo Block找到属于你的街头时尚 「回到街头」活动信息 时间 3月23日 - 4月14日 地点 福建省…

【数据结构初阶】之堆(C语言实现)

数据结构初阶之堆&#xff08;C语言实现&#xff09; &#x1f30f; 堆的概念&#x1f30f; 堆的模拟实现&#x1f413; 堆的结构和方法接口&#x1f413; 堆的方法的模拟实现&#x1f64a; 堆的初始化&#x1f64a; 堆的构建&#x1f64a; 堆的插入&#x1f64a; 向上调整&…

仿牛客社区项目所有PPT图片

文章目录 第1章 初识Spring Boot&#xff0c;开发社区首页1.1 课程介绍1.1.1 课程目标1.1.2 技术架构1.1.3 开发环境 1.2 搭建开发环境1.2.1 Apache Maven1.2.2 Intellij IDEA1.2.3 Spring Initializer1.2.4 SpringBoot 入门示例 1.3 Spring入门1.3.1 SpringBoot 全家桶1.3.2 S…

RecyclerView notifyItemRemoved 之后的源码分析

源码版本&#xff1a;androidx1.3.2 分析场景&#xff1a; RecyclerView使用线性布局&#xff0c;方向为竖直方向&#xff0c;布局从上到下&#xff0c;宽高都是 MATCH_PARENT。开始有3条数据。然后移除 position 1 的数据。 流程图 先说下结论&#xff1a; 在 dispatchL…

MySQL | 用户管理

目前为止&#xff0c;我们一直使用的是root权限写的SQL语句。但如果我们只能用root&#xff0c;这样存在安全隐患。而MySQL是给我们提供了用户管理的&#xff0c;可以创建用户&#xff0c;提供权限&#xff0c;收回权限。 1. 用户 MySQL中的用户&#xff0c;都存储在系统数据库…

软件测试教程 性能测试概论

文章目录 1. 性能测试实施的流程1.1 常见的性能问题1.2 性能测试是什么&#xff1f;1.3 性能测试和功能测试之间的区别1.4 什么样的系统/软件表现属于性能好&#xff0c;什么样的软件性能表现属于性能不好1.5 为什么要进行性能测试1.6 性能测试实施的流程1.7 常见的性能指标以及…

基于ssm汽车养护管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

ASP .Net Core 配置集合 IConfiguration 的使用

&#x1f433;简介 IConfiguration 是 ASP.NET Core 中的一个接口&#xff0c;用于表示配置集合。以下是关于 IConfiguration 的详细介绍&#xff1a; 作用&#xff1a;IConfiguration 允许开发人员从各种来源&#xff08;如文件、环境变量、命令行参数等&#xff09;读取应用…

PySide6-YOLO8目标检测、追踪可视化界面

目录 项目地址实现效果DetectTrack 项目地址 https://github.com/zhengjie9510/pyside-yolo 实现效果 Detect Track

【蓝牙协议栈】【BLE】低功耗蓝牙配对绑定过程分析(超详细)

1. 精讲蓝牙协议栈&#xff08;Bluetooth Stack&#xff09;&#xff1a;SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅&#xff0c;【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…

网络层(IP层)

IP协议的本质&#xff1a;有将数据跨网络传输的能力 而用户需要的是将数据从主机A到主机B可靠地跨网络传输 IP的组成&#xff1a;目标网络目标主机 IP由目标网络和目标主机两部分组成&#xff0c;IP报文要进行传输&#xff0c;要先到达目标网络&#xff0c;然后经过路由器转到…

Unity3d Shader篇(十六)— 模拟雪的Shader

文章目录 前言一、什么是模拟雪的Shader&#xff1f;1. 雪Shader原理2. 雪Shader优缺点优点&#xff1a;缺点&#xff1a; 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数6. 控制雪大小的脚本 三、效果四、总结 …

AI大模型学习:理论基石、优化之道与应用革新

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

数组三(冒泡排序、二分查找)

目录 冒泡排序算法 冒泡排序的基础算法 冒泡排序的优化算法 二分法查找 冒泡排序算法 冒泡排序是最常用的排序算法&#xff0c;在笔试中也非常常见&#xff0c;能手写出冒泡排序算法可以说是 基本的素养。 冒泡排序的基础算法 冒泡排序算法重复地走访过要排序的数列&#…