Java高级运用(工具类)

API

什么是API

java中一些类的方法

Objeck

(1)getClass:返回对象字节码文件对象;获取类名
(2)hashCode:返回对象的哈希码值(对象的内存地址值);十进制的内存地址值
(3)equals:比较两个对象是否相等
(4)toString:父类方法不适用子类时就需要重写toString方法

String

什么是String

(1)被final修饰的类,不能被继承
(2)字符串存在于常量池中。new创建值时在堆与常量池都创建,常量池有则直接调取不用继续创建新的;直接赋值时,会在常量池创建,常量池有则直接调取不用继续创建新的

String常用的方法:

方法名作用
isEmpty()判断是否为空值,空格也算值
length()取得该字符串的长度
equals(Object obj)判断是否相同
equalsIgnoreCase(String as)不区分大小写判断是否相同
charAt(int index)取得指定位置的字符
substring(int start)从指定位置开始输出
substring(int start,int end)从开始到结束-1的位置;包头不包尾
replace(char old,char new)字符替换(所有的)
trim()去掉首尾空格,不去字符中间的
indexOf()第一次出现该字符或字符串的位置;没有返回-1
getBytes转换为bytes型数组
案例:
		String i = new String("abc"); //在堆与常量池都创建,常量池有则直接调取不用继续创建新的
        String a = "Abc"; //直接在常量池中创建或者调取,不进堆中
        String b = "";
        System.out.println(b.isEmpty());//判断是否为空值,空格也算值
        System.out.println(i.length());//取得该String的长度
        System.out.println(i.equals(a));//判断是否相同
        System.out.println(i.equalsIgnoreCase(a));//不区分大小写比较
        System.out.println(a.charAt(0));//取得指定位置的字符
        String c = "abcdefghijklmnopqistuvwxyz";
        System.out.println(c.substring(10));//从指定位置开始
        System.out.println(c.substring(3,11));//从开始到结束-1的地方,包头不包尾
        System.out.println(c.replace("ab","c"));//字符串替换
        String d = "       a b c        ";
        System.out.println(d.trim());//去掉首尾空格,不去字符中间的
        System.out.println(c.indexOf("fg"));//第一次出现该字符串的位置

        String name = "张三";
        byte[] bytes = name.getBytes(); //转换成bytes型数组
        System.out.println(Arrays.toString(bytes)); //编码成数字表示的;汉字编码;三个数字表示一个汉字

StringBuffer常用的方法:

方法名作用
append(String str)追加字符串
insert(int offset,String str)在指定位置追加字符串
deleteCharAt(int offset,String str)删除指定位置的字符
delete(int start,int end)删除指定区间的字符
replace(int start,int end,String str)替换指定区间的内容
reverse()反转字符串
substring(int start,int end)截取指定区间的字符串
substring(int start)截取字符串
split()拆分字符串
		StringBuffer i = new StringBuffer("张三");
        System.out.println("追加字符串:"+i.append("是个好人"));//追加字符串
        System.out.println("在指定位置追加字符串:"+i.insert(6,"吗"));//在指定位置追加字符串
        System.out.println("删除指定位置的字符:"+i.deleteCharAt(6));//删除指定位置的字符
        System.out.println("删除指定区间的字符:"+i.delete(2,5));// 删除指定区间的字符
        System.out.println("替换指定区间的内容:"+i.replace(0,2,"李四"));//替换指定区间的内容
        System.out.println("反转字符串:"+i.reverse());//反转字符串
        System.out.println("截取指定区间的字符串:"+i.substring(0,1));//截取指定区间的字符串
        System.out.println("截取字符串:"+i.substring(1));//截取字符串
        String ss = "123-4567-7896";
        String[] split = ss.split("-");//用-拆分作为分隔符拆分
        System.out.println("拆分字符串:"+ Arrays.toString(split));

案例

客户要把手机号只展示前三位和后四位其他数字用*号代替

		StringBuffer pNum = new StringBuffer("12345678987");//创建一个手机号类型是StringBuffer类型的
        pNum.replace(3, 7, "****");//将指定区间的内容替换
        System.out.println(pNum);

包装

基本数据类型:是没有方法的,但是可以通过包装类来实现方法调用
写法:只有intIntegercharCharacter;剩下的都是首字母大写
装箱:基本数据类型---->包装类
拆箱:包装类---->基本数据类型

Integer的常用方法

方法名作用
intValue()转换成int
parseInt(String s)Sting转换int
valueOf(String s)Sting转换Integer
isUpperCase(char ch)是否为大写字母
isLowerCase(char ch)是否为小写字母
isDigit(char ch)字符串只有数字时返回true
toUpperCase(char ch)小写字符转大写
toLowerCase(char ch)大写字符转小写

Integer的案例

		char i = 'A';
        boolean a1 = Character.isUpperCase(i);
        System.out.println("A是否为大写字母"+a1);
        boolean a2 = Character.isLowerCase(i);
        System.out.println("A是否为小写字母"+a2);
        boolean a3 = Character.isDigit(i);
        System.out.println("i中是否只有数字"+a3);
        System.out.println("小写字符转换为大写"+Character.toUpperCase('a'));
        System.out.println("大写字符转换为小写"+Character.toLowerCase('A'));
        
        int a = 1;
        Integer b = a;
        int c = b;
        int d = b.intValue();
        Integer r = Integer.valueOf("123");// 字符串必须是数字,否则报错
        System.out.println(r);
        String s = "1234";
        int i1 = Integer.parseInt(s);//字符串转换为int
        System.out.println(i1);

案例

客户从页面(Scanner)拿到的是String的数据类型,要在后台转换成Int类型

	Scanner scanner = new Scanner(System.in);
        try {
            System.out.println("请输入一个数字");
            String i = scanner.next();
            int i1 = Integer.parseInt(i);
            System.out.println(i1);
        } catch (Exception e) {
            System.out.println("输入格式错误");
        }

Math

方法名作用
abs(int a)绝对值
ceil(double a)向上取整
floor(double a)向下取整
max(int a,int b)最大值
pow(double a,double b)求幂
random()0-1之间的随机数
round(float a)四舍五入取整
sqrt(double a)求正平方根

案例:

	System.out.println(Math.abs(-1));//绝对值
        double a = 3.5;
        System.out.println(Math.ceil(a));//向上取整
        System.out.println(Math.floor(a));//向下取整
        System.out.println(Math.round(a));//四舍五入取整
        System.out.println(Math.max(100,200));//最大值
        System.out.println(Math.pow(2,3));//求幂,前者为基数,后者为幂次方
        System.out.println(Math.random());//0-1之间的随机数
        System.out.println(Math.sqrt(9));//求正平方根

Date

		Date date = new Date();
        System.out.println(date);
        // 当前时间的毫秒值
        System.out.println(date.getTime());
        System.out.println(System.currentTimeMillis());
        //通过毫秒值计算
        Date date1 = new Date(1690256657699L);
        System.out.println(date1);
        //日期格式化
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS");
        String date2 = sdf.format(date);
        System.out.println(date2);

Calendar(日历类)

日历类擅长的是堆日期进行加减操作

方法名作用
getInstance()获取时间
get(int field)获取年月日时分秒
add(int field,int amount)计算时间
set(int year,int month,int date)设置时间
案例:
 		Calendar instance = Calendar.getInstance();
        System.out.println(instance);
        instance.add(Calendar.MONTH,2);//时间加两个月
        instance.add(Calendar.DAY_OF_MONTH,-2);//时间减两天

Random(随机数)

Random的常用方法

方法名作用
nextInt()一个随机数
nextInt(int n)一个0~n之间的随机数
案例:
		Random random = new Random();
        int i = random.nextInt(100);//随机一百内的数
        System.out.println(i);

        //随机30-70的数字
        int i1 = 30 + random.nextInt(40);
        System.out.println(i1);

案例:

客户要计算公司随机一位人员来到这个世界多少秒

		Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的生日:");
        String birthday = sc.nextLine();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(birthday);
        long myDate = date.getTime();
        long nowDate = System.currentTimeMillis();
        int millisecond=(int) ((nowDate-myDate)/1000);
        System.out.println("你来到这个世界有"+millisecond+"秒了");

重点

equals 和 ==区别

equals:底层的代码就是==,只能比较引用数据类型
==:可以比较基本数据类型和引用数据类型;比较基本数据类型就是比较值;比较引用数据类型就是比较地址值

String、StringBuffer、StringBuilder的区别

(1)String:速度最慢,线程安全,在少量字符串时使用
(2)StringBuffer:速度比StringBuilder慢,比String快,线程安全,在多线程环境下的大量使用
(3)StringBuilder:速度最快,线程不安全,在单线程环境下的大量使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值