API和一些常用类及其常用方法

这篇博客详细介绍了Java中的API,包括Scanner、String、StringBuilder、Random、Math、System、Object、BigDecimal、包装类、递归、Arrays、Date、SimpleDateFormat及JDK8新增时间日期类的使用。讲解了各个类的构造方法、成员方法,以及关键知识点如字符串拼接、比较、日期格式化等,并提供了示例代码。
摘要由CSDN通过智能技术生成

1.API

1.1 API概述
  • 什么是API
    • API (Application Programming Interface) :应用程序编程接口
  • java中的API
    • 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。
1.2 如何使用API帮助文档
  • 打开帮助文档
  • 找到索引选项卡中的输入框
  • 在输入框中输入Random
  • 看类在哪个包下
  • 看类的描述
  • 看构造方法
  • 看成员方法

2. Scanner类

2.1 构造方法
  • 没有空参构造方法
  • 常用构造方法:
    public Scanner(InputStream source)
2.2 成员方法
  • public int nextInt(){} 将输入的下一个标记扫描为int
  • public String next(){}查找并返回此扫描仪的下一个完整令牌
  • public String nextLine(){}将输入的下一个标记扫描为String
2.3 注意
  • nextInt和nextLine 不能同时使用,因为nextLine结束标记为回车
  • next不能完整录入有空格的内容,因为next结束标记为空格

3. String类

3.1 String概述
  • String 类在 java.lang 包下,所以使用的时候不需要导包

  • String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象

  • 字符串不可变,它们的值在创建后不能被更改,每次赋值都是在修改内存地址

    String str1 = "abc“;
    //内存中开辟新空间,保存123,str1重新保存新地址
    str1 = "123";
    
3.2 常用构造方法
  • public String ()

  • public String (char[] chs)

  • public String (String original)

  • String s = " abc "

  • 注意:

    • 打印字符串对象,显示的不是地址,而是值。
    • 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串常量池中维护
    • 字符串常量池中的数据可以共享
3.3 字符串拼接
  • 字符串拼接变量:底层是通过StringBuilder完成
  • 字符串常量拼接:采用常量优化机制
3.4 字符串的比较
  • == 比较基本数据类型:比较的是具体的值
  • == 比较引用数据类型:比较的是对象地址值
3.5 equals方法
  • public boolean equals(String s)
    • 比较两个字符串内容是否相同、区分大小写**
  • 代码
package com.itheima.stringmethod;

public class Demo1Equals {
   
    public static void main(String[] args) {
   
        String s1 = "abc";
        String s2 = "ABC";
        String s3 = "abc";

        // equals : 比较字符串内容, 区分大小写
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));

        // equalsIgnoreCase : 比较字符串内容, 忽略大小写
        System.out.println(s1.equalsIgnoreCase(s2));
    }
}

3.6 charAt方法
  • 格式
    • public char charAt(int index)
  • 作用
    • 得到字符串中传入索引处的字符并返回
  • 代码实现
import java.util.Scanner;

public class Test2 {
   
    /*
        需求:键盘录入一个字符串,得到3索引的字符
     */
    public static void main(String[] args) {
   
        //  1. 键盘录入一个字符串,用 Scanner 实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        String s = sc.nextLine();
        char c = s.charAt(0);
        System.out.println(c);
        }
    }
}
3.7 substring方法
  • public String substring(int index) {}
    • 从传入索引值开始截取一个新的字符串并返回
  • public String substring(int index1,int index2) {}
    • 从第一个参数索引处截取到第二个参数索引处,得到新的字符串并返回
  • 案例
    • 以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
import java.util.Scanner;
public class Test5 {
   
    /*
        需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
        最终效果为:156****1234
     */
    public static void main(String[] args) {
   
        // 1. 键盘录入一个字符串,用 Scanner 实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入手机号:");
        String telString = sc.nextLine();
        // 2. 截取字符串前三位
        String start = telString.substring(0,3);
        // 3. 截取字符串后四位
        String end = telString.substring(7);
        // 4. 将截取后的两个字符串,中间加上****进行拼接,输出结果
        System.out.println(start + "****" + end);
    }
}
3.8 replace方法
  • public String replace(String str1,String str2)
  • 使用传入字符串替换另一个字符串
  • 案例
    • 将字符串中的“TMD"使用"***"替换
    • 代码实现
public class Test {
   
    /*
        需求:如果字符串中包含(TMD),则使用***替换
     */
    public static void main(String[] args) {
   
        String s ="你TMD可真优秀";
        String result = s.replace("TMD","***");
        System.out.println(result);
    }
}
3.9 切割字符串
  • public String[ ] split(String regex){ }
  • 将字符串按照传入的字符规则切割成字符并装入字符数组
  • 案例
    • 将字符串按空格切成字符,形成字符数组
    • 代码实现
public class Test {
   
    /*
         需求:
             将字符串按照空格切割并生成字符数组
     */
    public static void main(String[] args) {
   
        String str = "1 2 3 4 5 6 7 8 9";
        String[] sArr = str.split(",");
        for(i = 0;i < sArr.length;i++){
   
        	System.out.println(sArr[i]);
        }
    }
}
3.10 String 方法小结
方法 作用
public boolean equals(String s) 比较字符串内容,包括大小写
public boolean equalsgnore(String s) 比较内容,不区分大小写
public int length() 返回一个字符串的长度
public char charAt (int index ) 返回传入索引处的字符值
public char[] toCharArray (String s) 将字符串拆分成字符数组然后返回
public String substring(int beginIndex) 从传入的索引处截取字符串到末尾
public String substring(int beginIndex , int endIndex) 截取索引之间的字符,含头不含尾
public String replace(String s1,String s2) 使用新的字符将旧的替换,得到新的字符串
public String[] split(String regex) 根据传入的规则切割字符串,存入一个字符数组并返回

4. StringBuilder类

4.1 StringBuilder类概述
  • StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
4.2 作用
  • 提供字符串的拼接效率
4.3 StringBuilder类和String类的区别
  • String类:内容是不可变的

  • StringBuilder类:内容是可变的

4.4 常用的构造方法
方法名 说明
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
4.5 常用的成员方法
方法名 说明
public StringBuilder append(任意类型) 添加数据,并返回对象本身
public StringBuilder reverse() 返回相反的字符序列
public int length() 返回长度 ( 字符出现的个数)
public String toString() 通过toString()就可以实现把StringBuilder转换为String

5. Random类

5.1 构造方法
方法 作用
public Random() 空参构造,创建一个新的随机数生成器
public Random(long seed) 有参构造,创建一个从零到传入数字范围的随机数
5.2 成员方法
  • 常用成员方法与Scanner类似
  • 案例
    • 产生任意数之间的随机数
    //产生3-8之间的随机数
    Random r = new Random();
    int max = 8;
    int min = 3;
    int num = r.nextInt(max-min + 1) + min;
    System.out.println(num);
    

6. Math类

6.1 Math类概述
  • Math 包含执行基本数字运算的方法
6.2 Math中方法的调用方式
  • Math类中无构造方法,但内部的方法都是静态的,则可以通过类名加点进行调用
6.3 常用方法
方法名 方法名 说明
public static int abs(int a) 返回参数的绝对值
public static double ceil(double a) 返回大于或等于参数的最小double值,等于一个整数
public static double floor(double a) 返回小于或等于参数的最大double值,等于一个整数
public static int round(float a) 按照四舍五入返回最接近参数的int
public static int max(int a,int b) 返回两个int值中的较大值
public static int min(int a,int b) 返回两个int值中的较小值
public static double pow (double a,double b) 返回a的b次幂的值
public
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值