java常用类

本文介绍了Java编程中的基础概念,包括内部类的类型、Math类的常用方法、System类和Object类的方法,详细讲解了String和StringBuilder的使用,包括它们的构造方法和转换方法。此外,还讨论了Integer的基本操作,如自动装箱和拆箱,以及日期类的处理,如日期格式化和日期工具类的案例。最后,文章通过猜数字游戏展示了Random类的使用,并提供了处理二月天数目的示例代码。
摘要由CSDN通过智能技术生成

目录

什么是内部类

 Math常用方法

System类常用方法

Object类常用方法

String类

StringBuilder

StringBuilder构造方法

StringBuilder和String的转换

优化方法

Random

猜数字案例

Integer基本类型包装类

自动装箱和拆相

日期类

 日期工具类案例

二月天案例


什么是内部类

 

 匿名内部类是局部内部类的特殊形式

 

 

 

 Math常用方法

System类常用方法

 

Object类常用方法

package com.category.lesson05;

public class Student {
    String name;
    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;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

package com.category.lesson05;

public class Student {
    String name;
    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;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        //this --- s1
        //o ---s2
        if (this == o) return true;
        //getClass() != o.getClass() 判断两个对象是否来自同一个类
        if (o == null || getClass() != o.getClass()) return false;
        //向下转型
        Student student = (Student) o;

        if (age != student.age) return false;
        //name.equals(student.name)相同 返回true
        return name != null ? name.equals(student.name) : student.name == null;
    }


}

package com.category;


import com.category.lesson05.Student;

public class Application {
    public static void main(String[] args) {

        Student s1 = new Student();
        s1.setName("周新龙");
        s1.setAge(20);
        Student s2 = new Student();
        s2.setName("周新龙");
        s2.setAge(20);
       //需求:比较两个对象的内容是否相同
        System.out.println(s1==s2);//对象是地址值
        System.out.println(s1.equals(s2));//默认比的是地址值因此要重写equals方法

        /*

        public boolean equals(Object obj) {
             this--->s1
             obj--->s2
            return (this == obj);
        }*/
    }
}

String类

 

 

StringBuilder

StringBuilder构造方法

StringBuilder和String的转换

优化方法

package com.category.lesson07;

  /* 需求:
        定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果
        例如:数组为int[] arr={1,2,3};执行方法后的输出的结果为:[1,2,3]
  *  思路:
  *    1:定义一个int 类型的数组,用静态初始化完成数组元素的初始化
  *    2:定义一个方法,用于把 int 数组中的数据按照指定格式拼成一个字符串返回。
  *    3:在方法中用 StringBuilder 按照要求进行拼接,并把结果转成  String 返回
  *    4:调用方法,用一个变量接受结果
  *    5:输出结果
  * */

public class StringBuilderTest04 {

    public static void main(String[] args) {
        int[] arr={1,2,3};
        //调用方法,用一个变量接受结果
        String s = arrayToString(arr);

        System.out.println(s);
    }

   /* 两个明确:
           返回值类型:String
           参数:int[] arr
   *
   *
   * */

    public static String arrayToString(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
             if (i==arr.length-1){
                 sb.append(arr[i]);
             }else {
                 sb.append(arr[i]).append(",");
             }
        }

        sb.append("]");
        String s = sb.toString();
        return s;
    }

}


package com.category.lesson07;

import java.util.Scanner;
/*
*   需求:
*     定义一个方法,实现字符串反转。键盘录入一个字符串,调用该方法后,在控制台输出结果
*     例如:键盘录入abc,输出结果 cba
*  思路:
*    1:键盘录入一个字符串,用Scanner 实现
*    2:定义一个方法,实现字符串反转。返回值类型String,参数 String s
*    3:在方法中用StingBuilder实现字符串的反转,并把结果转成String返回
*    4:调用方法,用一个变量接收结果
*    5:输出结果
* */




public class StringBuilderTest06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        String s = scanner.nextLine();
        String s1 = myReverse(s);
        System.out.println("s1: " + s1);
    }

    public static String myReverse(String s) {
       // 在方法中用StringBuilder实现字符串的反转,并把结果转成String返回
        // String --- StringBuilder ---reverse() ---String
        return new StringBuilder(s).reverse().toString();
    }
}

Random

猜数字案例

package com.category.lesson08;

import java.util.Random;
import java.util.Scanner;

/*
*   猜数字
*    需求:
*      程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
*        当猜错的时候根据不同情况给出相应的提示
*        如果猜的数字比真实数字大,提示你猜的数据大了
*        如果猜的数字比真实数字小,提示你猜的数据小了
*        如果猜的数字与真实数字相等,提示恭喜你猜中了
*
* */
public class RandomTest02 {
    public static void main(String[] args) {

        //要完成猜数字的游戏,首先需要有一个要猜出的数字,使用随机数生成该数字,范围1到100
        Random random = new Random();
        int i = random.nextInt(100) + 1;
        while (true) {
            //使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入你要猜的数字:");
            int guessNumber = scanner.nextInt();

            if (guessNumber > i) {
                System.out.println("你猜的数据大了");
            } else if (guessNumber < i) {
                System.out.println("你猜的数据小了");
            } else {
                System.out.println("恭喜你猜中了");
                break;
            }

        }
    }

}

Integer基本类型包装类

package com.category.lesson09;

public class IntegerTest02 {

    public static void main(String[] args) {
        //public static Integer valueOf(int i); 返回表示指定的 int 值的 Integer 实例
        Integer integer = Integer.valueOf(100);
        System.out.println(integer);

        //public static Integer valueOf(String s); 返回一个保存指定值的Integer 对象 String
        Integer integer1 = Integer.valueOf("100");
        System.out.println(integer1);


    }

}
package com.category.lesson09;

public class IntegerTest03 {
    public static void main(String[] args) {
        //int --- String
        int number=100;
        //方式一
        String s1=""+number;
        System.out.println(s1);
        //方式二
        //public static String valueOf(int i)
        String s = String.valueOf(number);
        System.out.println(s);
        System.out.println("-----------");

        //String --- int
        String s2="100";
        //方式一
        // String --- Integer --- int
        Integer i = Integer.valueOf(s2);
        //public int intValue()
        int x=i.intValue();
        System.out.println(x);
        //方式二
        //public static int parseInt(String s)
        int i1 = Integer.parseInt(s2);
        System.out.println(i1);
    }
}

package com.category.lesson09;

import java.util.Arrays;
/*
   需求:
      有一个字符:“91 27 46 38 50”,请写程序实现最终输出结果是:“27 38 46 50 91”
   思路:
      1.定义一个字符串
      2.把字符串中的数字数据存储到一个int类型的数组中
           得到字符串中每一个数字数据
           public String[] split(String regex)
           定义一个int数组,把String[] 数组中的每一个元素存储到 int 数组中
           public static int parseInt(String s)
      3.对int数组进行排序
      4.把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用 StringBuilder来实现
      5.输出结果
 */
public class IntegerTest04 {
    public static void main(String[] args) {
        //定义字符串

        String s = "91 27 46 38 50";

        //public String[] split(String regex)
        // 得到字符串中每一个数字数据并存入String数组中
        String[] strArray = s.split(" ");
//        for (int i = 0; i < split.length; i++) {
//            System.out.print(split[i]);
//        }
        //定义一个int数组,把String[] 数组中的每一个元素存储到 int 数组中
        //public static int parseInt(String s)
        int[] arr = new int[strArray.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(strArray[i]);
        }
//        for (int j = 0; j < arr.length; j++) {
//            System.out.print(arr[j]);
//        }

        Arrays.sort(arr);
        StringBuilder s1 = new StringBuilder();
        for (int i = 0; i < arr.length ; i++) {
            //是否是最后一个数
            if (i==arr.length-1){
                s1.append(arr[i]);
            }else {
                s1.append(arr[i]).append(" ");
            }
        }
        String s2 = s1.toString();
        System.out.println(s2);
    }
}

自动装箱和拆相

日期类

package com.category.lesson10;

import java.util.Date;

public class DateTest01 {
    public static void main(String[] args) {
       // public Date(); 分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最接近的毫秒。
        Date d1 = new Date();
        System.out.println(d1);//Wed Apr 12 15:55:33 CST 2023 说明他重写了toString方法

        // public Date(long date)分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。

         long d2=1000*60*60;
         Date d=new Date(d2);
        System.out.println(d);

    }
}

 

package com.category.lesson10;

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

public class SimpleFormatTest01 {
    public static void main(String[] args) throws ParseException {
        //构造方法
        //public SimpleDateFormat()
        //public SimpleDateFormat(String pattern)

        //格式化 Date  --- String
        //public final String format(Date date)将日期格式化成日期/时间字符串。

        //解析   String --- Date
        //public Date parse(String source)throws ParseException从给定字符串的开始解析文本以生成日期。

        Date d = new Date();

        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       //格式化 Date  --- String
        String f = s.format(d);

        System.out.println(f);
        System.out.println("--------------");
        //解析   String --- Date
        String dd="2023-4-12 17:42:22";
        Date p = s.parse(dd);//ParseException
        System.out.println(p);

    }
}

 日期工具类案例

package com.category.lesson11;

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

public class DateFormat {

    private  DateFormat(){

    }

    /**
     * 把日期转为指定格式的字符串
     * 返回值类型:String
     * 参数: Date date,String format
     *
     * @param date
     * @param format
     * @return
     */

    public static String DateToString(Date date, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(date);
        return s;
    }

    /**
     * 把字符串解析为指定格式的日期
     * 返回值类型:Date
     * 参数:String s1, String format
     * @param s1
     * @param format
     * @return
     * @throws ParseException
     */

    public static Date StringToDate(String s1 ,String format) throws ParseException {
        SimpleDateFormat sdf1 = new SimpleDateFormat(format);
         Date s2=sdf1.parse(s1);
         return s2;
    }
}

package com.category.lesson11;

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

public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        String s = DateFormat.DateToString(d, "yyyy年MM月dd日");
        System.out.println(s);


        String s1 = DateFormat.DateToString(d, "yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s1);


        String  s2="2023-04-12";
        Date s3 = DateFormat.StringToDate(s2, "yyyy-MM-dd");
        System.out.println(s3);
    }
}

package com.category.lesson12;

import java.util.Calendar;

public class CalenderTest01 {
    public static void main(String[] args) {
       //public static Calendar getInstance()使用默认时区和区域设置获取日历。

       Calendar c= Calendar.getInstance();//多态的形式
        /*int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;//从零开始的
        int day = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+day+"日");*/


        //public abstract void add(int field,int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段。
        //需求:三年前的今天
        /*c.add(Calendar.YEAR,-3);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;//从零开始的
        int day = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+day+"日");*/


        //需求:十年后的五天前
      /*  c.add(Calendar.YEAR,10);
        c.add(Calendar.DATE,-5);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;//从零开始的
        int day = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+day+"日");*/


        // public final void set(int year,int month,int date)设置日历字段的值YEAR , MONTH ,并DAY_OF_MONTH 。

        c.set(2045,10,10);
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;//从零开始的
        int day = c.get(Calendar.DATE);
        System.out.println(year+"年"+month+"月"+day+"日");
    }
}

二月天案例

package com.category.lesson12;

import java.util.Calendar;
import java.util.Scanner;

public class CalenderTest02 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("请输入年份:");
        int year = sc.nextInt();
        Calendar c = Calendar.getInstance();

        c.set(year, 2, 1);//月份是从0开始的

        c.add(Calendar.DATE, -1);

        int date = c.get(Calendar.DATE);

        System.out.println(year + "年2月份有" + date+"天");


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值