java初学笔记-Lang包下常用类之__1.String类

* API文档概述

Java下常用类的使用的方法不一定全部都要死记硬背记住, 看一遍记不住很正常, 用的多了自然会熟悉, 但是要用到时一定要会查, 当然最好是学会自己看API文档。下面是关于API文档的概述

1.API(Application Programming Interface)概述

API(Application Programming Interface), 应用程序编程接口。Java API是一本程序员的字典, 是JDK中提供给开发者使用的类的说明文档。这些将底层的代码实现封装了起来, 我们不需要关心这些类是如何实现的, 只需要学习这些类如何使用即可。所以我们可以通过查询 API 的方式, 来学习Java提供的类, 并得知如何使用他们。

JDK API 1.6.0 官方中文版.chm: 网盘地址 提取码:5uqg

2.API使用步骤

  1. 打开帮助文档
  2. 点击显示, 找到索引, 看到输入框
  3. 搜索关键字
  4. 看所在的包。只有java.lang包是默认导入的
  5. 看类的解释和说明
  6. 学习构造方法
  7. 使用成员方法

1.String类

1.包路径

java.lang.String

String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。

2.字符串的特点:

  • 字符串是常量;它们的值在创建之后不能更改。
  • (存储: 直接使用字符串文字创建字符串对象时, 该对象都会存储在字符串常量池中, 字符串常量池中不会有重复的字符串; 而使用new关键字创建字符串对象时, 此类对象都会存储在堆内存中。)
  • 因为 String 对象是不可变的,所以可以共享。
  • 字符串效果上相当于 char[ ] 字符数组, 但是底层原理是 byte[ ] 字节数组。

3.构造方法

创建字符串对象的常见3+1种方式:
三种构造方法:

  1. public String( ) : 创建一个空白字符串, 不含任何内容
  2. public String(char[ ] array) : 根据字符数组的内容来创建对应的字符串
  3. public String(byte[ ] array) : 根据字节数组的内容来创建对应的字符串

一种直接创建:

  • String str = “abc”; 通过赋值直接创建
public class String01 {
    public static void main(String[] args) {
        //使用无参构造
        String str1 = new String();
        System.out.println("第一个字符串"+str1);

        //根据字符数组创建字符串
//        char[] charArrary = {'A','B','C'};
        char[] charArrary = {65,66,67};//编译器优化的类型转换
        String str2 = new String(charArrary);
        System.out.println("第二个字符串"+str2);

        //根据字节数组创建字符串
        byte[] byteArray = {65,66,67};//编译器优化的类型转换
        String str3 = new String(byteArray);
        System.out.println("第三个字符串"+str3);

        //直接创建
        String str4 = "ABC";
    }
}

4.字符串常量池

  • 直接使用字符串文字创建字符串对象时, 该对象都会存储在字符串常量池中, 底层以字节数组形式存储在堆内存中。
  • 字符串常量池中不会有重复的字符串;
  • 而使用new关键字创建字符串对象时, 此类对象都会直接存储在堆内存中。
    字符串与内存关系
/**
 * 字符串常量池,只有在程序中直接写上的双引号字符串,存储在字符串常量池中
 */
public class String02 {
    public static void main(String[] args) {
        String str1 = "abc";//存储在字符串常量池子中
        String str2 = "abc";//存储在字符串常量池子中

        char[] charArray1 = {97,98,99};
        String str3 = new String(charArray1);

        char[] charArray2 = {'a','b','c'};
        String str4 = new String(charArray2);

        String str5 = new String("abc");

        System.out.println(str1 == str2);//true
        System.out.println(str1 == str3);//false
        System.out.println(str1 == str4);//false
        System.out.println(str1 == str5);//false

    }
}

5.常用方法

比较

  • public boolean equals(Object obj) : 比较字符串的值是否相等, 返回布尔值

获取

  • public int length( ): 获取字符串长度, 字符个数
  • public char charAt(int index) : 获取字符串指定索引位置的字符, 从索引0开始
  • public int indexOf(String str) : 查找参数字符串在字符串中 首次 出现的索引位置, 没找到返回值-1
  • public String concat(String str) : 字符串拼接, 返回一个新字符串

截取

  • public String substring(int index) : 截取从参数索引位置至末尾, 返回新字符串
  • public String substring(int begin, int end) : 左闭右开区间, 截取指定范围字符串

转换

  • public char[ ] tocharArray() : 将当前字符串拆分成字符数组
  • public byte[ ] getBytes(): 获得当前字符串底层的字节数组
  • public String replace(CharSequence oldString, CharSequence newString) : 将所有出现的老字符串替换成新的字符串, 返回替换后的结果字符串。

分割

  • public String[] split(String regex) : 按照参数的规则,将字符串切分成若干部分
public class String03 {
    public static void main(String[] args) {
        /**
         * 截取字符串
         */
        String str1 = "HelloWorld";
        String str2 = str1.substring(str1.indexOf('W'));
        //从数组str1中第一次出现字符'W'的位置截取数组str1至末尾
        System.out.println(str2);//World

        String str3 = str1.substring(str1.indexOf("lo"),str1.indexOf('o'));
        //从数组str1中第一次出现字符串"lo"的位置(3)截取数组str1中第一次出现字符'o'的位置(4)
        //左闭右开区间[3,4),返回值为一个字符串"l"
        System.out.println(str3);

        /**
         * 转换字符串
         */
        System.out.println(str1.toCharArray());//转换成字符数组
        //打印字符数组时,会自动转换成String字符串并输出
        byte[] str1Bytes = str1.getBytes();//转换成字节数组
        for (int i = 0; i < str1Bytes.length; i++) {//遍历字节数组
            System.out.println(str1Bytes[i]);
        }
        System.out.println(str1.replace("o", "oo"));//把字符串中所有的"o"替换为"oo"

        /**
         * 切割字符串
         */
//        正则表达式(regular expression)
//        split方法的参数regex实际是一个正则表达式,注意正则表达式中的特殊符号,需要转义,如\\.
        String str4 = "aaa.bbb.c";
        String[] arrayStr = str4.split("\\.");//以"."分割字符串
        for (int i = 0; i < arrayStr.length; i++) {
            System.out.println(arrayStr[i]);//aaa bbb c
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code tea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值