Java学习的第八天

什么是API

  • API(Application Programming Interface):应用程序编辑接口
  • Java中的API:
    指的就是JDK中提供各种功能的Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类是如何使用的即可

String类

  • Stirng类代表字符串,Java中所有字符串的文字(例如“abc”)都被实现为此类的实例。
  • String类的特点
  • 字符串可变,但是它的值在创建之后是不可以改变的
  • 虽然Stirng的值是不能改变的,但是他们可以被共享
  • 字符串效果上相当于char [](字符数组),但是底层原理是byte[](字节数组)

String类的构造方法

  • 常用的构造方法、

方法名

说明

public String()

创建一个空白字符串对象,不含有任何内容

public String(char []chs)

根据字符数组的内容,来创建一个字符串对象、

public String(byte []bys)

根据字节数组的内容,来创建字符串对象

String s=“abc”

通过直接赋值的方式来货初始化字符串对象,内容就是abc

  • 字符串的比较
  • ==号的作用
  • 比较基本数据类型:比较的是具体的值
  • 比较引用数据类型:比较的是对象的地址值
  • equals方法的作用

方法名

作用

public boolean equals(String s)

比较两个字符串的内容是否相同,区分大小写

  • 注意:是拿字符串去和s比较,无论是数组的长度还是数组的内容,区分大小写
public class StringDemo02 {
    public static void main(String[] args) {
        //构造方法的方式得到对象
        char[] chs = {'a', 'b', 'c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值的方式得到对象
        String s3 = "abc";
        String s4 = "abc";

        //比较字符串对象地址是否相同
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s4);
        System.out.println("--------");

        //比较字符串内容是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equals(s3));
        System.out.println(s3.equals(s4));
    }
}
  • 一些方法的运用

方法名

说明

public boolean equals(Object anObject)

比较字符串的大小,严格区分大小写

public boolean equalslgnore(String anotherString)

比较字符串的内容,忽略大小写

public int length()

返回字符串的长度

public char charAt(int index)

返回指定索引处的char值

public char[] toCharArray()

将字符串拆分成字符数组后返回

public String substring(int beginIndex,int endIndex)

根据开始和结束索引进行截取(包含头,不包含尾)

public String substring(int beginIndex)

从传入的索引处截取,截取到末尾,得到新的字符串

public String replace(CharSequence target,CharSequence replacement)

使用新值,将字符串中的旧值替换,得到新的字符串

public String[] split(String regex)

根据传入的规则切割字符串,得到字符数组

#切割字符串的实例:用上述方法中的substring()
    
import java.util.Scanner;
public class Test5 {
    /*
        需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
        最终效果为:138****7862

        思路:
        1. 键盘录入一个字符串,用 Scanner 实现
        2. 截取字符串前三位
        3. 截取字符串后四位
        4. 将截取后的两个字符串,中间加上****进行拼接,输出结果

     */
    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);
    }
}
#字符串的替换的方式,使用上述方法的replace()
import java.util.Scanner;
public class Test6 {
    /*
        需求:键盘录入一个 字符串,如果字符串中包含(TMD),则使用***替换

        思路:
        1. 键盘录入一个字符串,用 Scanner 实现
        2. 替换敏感词
                String replace(CharSequence target, CharSequence replacement)
                将当前字符串中的target内容,使用replacement进行替换,返回新的字符串
        3. 输出结果

     */
    public static void main(String[] args) {
        // 1. 键盘录入一个字符串,用 Scanner 实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入:");
        String s = sc.nextLine();
        // 2. 替换敏感词
        String result = s.replace("TMD","***");
        // 3. 输出结果
        System.out.println(result);
    }
}
#切割字符串的方法:用上述方法split(String regex)
public class study2 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一组数据");
        String s=sc.nextLine();
        String []str=s.split(" ");
        int []arr=new int[str.length];
        for (int i = 0; i < str.length; i++) {
            Integer ins=Integer.valueOf(str[i]);#将字符数组内部的元素转换成int类型
            arr[i]=ins;
        }
        System.out.println(Arrays.toString(str));
    }
}

StringBuilder类

  • 概述:StringBuilder类,是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的是StringBuilder对象中的内容是可以改变的

String类

StringBuilder类

内容是不可以更变的

内容是可以改变的

  • 常用的构造方法

方法名

说明

public StringBuilder()

创建一个空白可变的字符串对象,不含有任何内容

public StringBuilder(String str)

根据字符串的内容,来创建可变字符串的对象

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        //public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
        StringBuilder sb = new StringBuilder();
        System.out.println("sb:" + sb);
        System.out.println("sb.length():" + sb.length());

        //public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb2:" + sb2);
        System.out.println("sb2.length():" + sb2.length());
    }
}
  • 注意:
  1. 一定得在创建时分清楚自己到底需要些什么,不要一股脑的乱创建String类和StringBuilder类
  • 常用的成员方法
  1. 添加和反转的方法

方法名

说明

public StringBuilder append(任意类型)

添加数据,并返回对象本身

public StringBuilder reverse()

返回相反的字符序列

  • 代码:
public class StringBuilder1 {
    public static void main(String[] args) {
        //创建对象
        StringBuilder sb = new StringBuilder();

        //public StringBuilder append(任意类型):添加数据,并返回对象本身
//        StringBuilder sb2 = sb.append("hello");
//
//        System.out.println("sb:" + sb);
//        System.out.println("sb2:" + sb2);
//        System.out.println(sb == sb2);

//        sb.append("hello");
//        sb.append("world");
//        sb.append("java");
//        sb.append(100);

        //链式编程
        sb.append("hello").append("world").append("java").append(100);#字符串的添加

        System.out.println("sb:" + sb);

        //public StringBuilder reverse():返回相反的字符序列
        sb.reverse();#字符串的反转
        System.out.println("sb:" + sb);
    }
}