Java常用API之String类

Java常用API之String类

一、什么是API及使用步骤

/*
面向对象的使用步骤:
    1.定义类
    2.创建对象
    3.使用对象

Java提供了成千上万的类给我们使用,比如Scanner和Random

目标:
    了解API的概念
    掌握API的使用步骤

讲解:
    API(Application Programming Interface): 应用程序编程接口,通俗的说API就是Java写好的类
        JDK安装目录/src.zip 这里面就Java已经写好的类,我们将来就是用这些类

    API文档: Java提供的类的说明书

    API帮助文档使用步骤
        1.打开帮助文档。
        2.点击显示,找到索引,看到输入框。
        3.你要找谁?在输入框里输入,然后回车。

        4.看类属于哪个包
        5.看类的解释和说明
        6.看类的构造方法
        7.看类的成员方法

    API中的类使用步骤:
        1.导入包
        2.创建对象
        3.使用对象

小结:
    什么是API?
        应用程序编程接口,通俗的说就是Java提供好的类

    API中的类使用步骤:
        1.导入包
        2.创建对象
        3.使用对象
 */
import java.util.Random;
public class Demo01 {
    public static void main(String[] args) {
        // 2.创建对象
        Random ran = new Random();

        // 3.使用对象
        int r = ran.nextInt(10);
        // soutv: 打印的时候显示变量名
        System.out.println("r = " + r);
    }
}

Java常用API之String类_第1张图片

二、String类构造方法


/*
先创建对象: 类名 对象名 = new 类名();

后使用对象

目标:使用String的构造方法创建对象

讲解:
    String类属于:java.lang包, java.lang是核心包,不需要导包直接使用

    String类作用:
        String类代表字符串。""包裹的内容都是字符串,比如"abc"就是一个字符串

    构造方法:
        String() 创建一个空字符串
        String(String original) 根据字符串创建一个新的字符串
        String(char[] value) 根据char数组创建新字符串
        String(byte[] bytes) 根据byte数组创建字符串
        String(byte[] bytes, int offset, int length) 根据数组的一部分创建字符串(后面IO流会用)


小结:
    String类的作用: 表示字符串, ""包裹的就是字符串

    String类的构造方法:
        1.String() 创建一个空字符串
        2.String(String original) 根据字符串创建一个新的字符串
        3.String(char[] value) 根据char数组创建新字符串
        4.String(byte[] bytes) 根据byte数组创建字符串
        5.String(byte[] bytes, int offset, int length) 根据数组的一部分创建字符串(后面IO流会用)

    最方便的是字符串直接赋值
        String s6 = "Hello";

    我们自己定义的类创建的对象打印出来是对象的地址,String打印的是内容,这是String做了特殊操作,过几天我们会学这个知识点,让我们的对象也能打印内容
 */
public class Demo02 {
    public static void main(String[] args) {
        // 创建对象的格式: 类名 对象名 = new 类名();
        // 1.String() 创建一个空字符串
        String s1 = new String(); // ""
        System.out.println("s1 = " + s1); // s1 =

        // 2.String(String original) 根据字符串创建一个新的字符串
        String s2 = new String("hello");
        System.out.println("s2 = " + s2); // s2 = hello

        // 3.String(char[] value) 根据char数组创建新字符串
        char[] chs = new char[] {'a', 'b', 'c', 'd'};
        String s3 = new String(chs); // 将char数组中的字符拼接起来形成一个字符串
        System.out.println("s3 = " + s3); // s3 = abcd

        // 4.String(byte[] bytes) 根据byte数组创建字符串
        //                          0   1   2   3   4
        byte[] bytes = new byte[] {65, 66, 67, 68, 69};
        String s4 = new String(bytes); // 拿byte数组中的数组去找到对应的字符 {'A', 'B', 'C', 'D', 'E'}
        System.out.println("s4 = " + s4); // s4 = ABCDE

        // 5.String(byte[] bytes, int offset, int length) 根据数组的一部分创建字符串
        // int offset: 从哪个索引开始
        // int length: 长度
        String s5 = new String(bytes, 1, 3);
        System.out.println("s5 = " + s5); // s5 = BCD

        // Java搞了一种特殊创建字符串的方式(直接赋值)(常用)
        String s6 = "Hello";
        System.out.println("s6 = " + s6); // s6 = Hello
    }
}

三、字符串直接赋值和new String()的区别

/*
目标:理解字符串直接赋值和new String的区别

讲解:
    ==:
        基本数据类型,比较数据的值是否相等
        引用数据类型,比较对象的地址是否相同

小结:
	""创建的字符串放在字符串常量池中,可以节省空间
	new String()在堆中

 */
public class Demo03 {
    public static void main(String[] args) {
//        System.out.println(3 == 5); // false

        String s1 = "hello";
        String s2 = "hello";

        String s3 = new String("hello");
        String s4 = new String("hello");

        System.out.println(s1 == s2); // true
        System.out.println(s3 == s4); // false
        System.out.println(s1 == s3); // false
    }
}

四、String类判断功能常用方法

/*
目标:能够掌握String判断功能

讲解:
    String类是Java写好的类,String代表字符串"abc"
    String里面的方法都是用来操作字符串的

    String判断功能:
        1.boolean equals(Object anObject) 比较字符串的内容是否相同,相同返回true
        2.boolean equalsIgnoreCase(String anotherString) 比较字符串是否相同,忽略大小写
        3.boolean contains(CharSequence s) 判断是否包含指定字符串,包含返回true
        4.boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开头。
        5.boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。

小结:
    1.boolean equals(Object anObject) 比较字符串的内容是否相同,相同返回true
    2.boolean equalsIgnoreCase(String anotherString) 比较字符串是否相同,忽略大小写
    3.boolean contains(CharSequence s) 判断是否包含指定字符串,包含返回true
    4.boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开头。
    5.boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。
 */
public class Demo04 {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = new String("hello");
        String s3 = "Hello";

        // 1.boolean equals(Object anObject) 比较字符串的内容是否相同,相同返回true
        // 用于比较账号和密码
        System.out.println("s1.equals(s2): " + s1.equals(s2)); // true
        System.out.println("s1.equals(s3): " + s1.equals(s3)); // false

        // 2.boolean equalsIgnoreCase(String anotherString) 比较字符串是否相同,忽略大小写
        // 用于验证码比较
        System.out.println("s1.equalsIgnoreCase(s3): " + s1.equalsIgnoreCase(s3)); // true

        // 3.boolean contains(CharSequence s) 判断是否包含指定字符串,包含返回true
        String s4 = "我爱Java, Java很好,PHP也好!";
        System.out.println("s4.contains(Java): " + s4.contains("Java")); // true
        System.out.println("s4.contains(java): " + s4.contains("java")); // false

        // 4.boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开头。
        String s5 = "abcdefg";
        System.out.println("s5.startsWith(a)" + s5.startsWith("a")); // true
        System.out.println("s5.startsWith(abc)" + s5.startsWith("abc")); // true
        System.out.println("s5.startsWith(b)" + s5.startsWith("b")); // false

        // 5.boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。
        String s6 = "Test.png";
        System.out.println("s6.endsWith(png): " + s6.endsWith("png")); // true
        System.out.println("s6.endsWith(ng): " + s6.endsWith("ng")); // true
        System.out.println("s6.endsWith(pn): " + s6.endsWith("pn")); // false
    }
}

五、String类转换功能常用方法


/*
目标:能够掌握String转换功能

讲解:
    String转换功能:
        1.char[] toCharArray() 将此字符串转换为新的字符数组
        2.byte[] getBytes() 将字符串转成字节数组
        3.String toLowerCase() 将此String所有字符转换为小写
        4.String toUpperCase() 将此String所有字符转换为大写
        5.String replace(CharSequence target, CharSequence replacement) 在字符串中,将target替换为replacement字符串

小结:
    1.char[] toCharArray() 将此字符串转换为新的字符数组
    2.byte[] getBytes() 将字符串转成字节数组
    3.String toLowerCase() 将此String所有字符转换为小写
    4.String toUpperCase() 将此String所有字符转换为大写
    5.String replace(CharSequence target, CharSequence replacement) 在字符串中,将target替换为replacement字符串
 */
public class Demo06 {
    public static void main(String[] args) {
        String s1 = "Hello";
        // 1.char[] toCharArray() 将此字符串转换为新的字符数组。
        // .var生成方法的返回值
        char[] chars = s1.toCharArray(); // char[] chars = new char[] {'H', 'e', 'l', 'l', '0'};
        // 遍历char数组
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i] + " "); // H e l l o
        }
        System.out.println();

        // 2.byte[] getBytes() 将字符串转成字节数组
        byte[] bytes = s1.getBytes();
        // 遍历byte数组
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i] + " "); // 72 101 108 108 111
        }
        System.out.println();

        // 3.String toLowerCase() 将此String所有字符转换为小写
        String s2 = "HelloWorld";
        System.out.println("toLowerCase: " + s2.toLowerCase()); // helloworld

        // 4.String toUpperCase() 将此String所有字符转换为大写
        System.out.println("toUpperCase: " + s2.toUpperCase()); // HELLOWORLD

        // 5.String replace(CharSequence target, CharSequence replacement) 在字符串中,将target替换为replacement字符串
        String s3 = "Hello itheima, i love itheima"; // 将"itheima"替换为"黑马"
        String replace = s3.replace("itheima", "黑马"); // 我*你* 脏话过滤
        System.out.println("替换后 = " + replace); // Hello 黑马, i love 黑马
    }
}

arSequence replacement) 在字符串中,将target替换为replacement字符串
String s3 = “Hello itheima, i love itheima”; // 将"itheima"替换为"黑马"
String replace = s3.replace(“itheima”, “黑马”); // 我 脏话过滤
System.out.println("替换后 = " + replace); // Hello 黑马, i love 黑马
}
}


你可能感兴趣的:(java基础)