Java基础笔记 day8

 一、String类本质与java元空间

String str 其实是char类型数组(jdk1.8之前是char数组,jdk1.8之后为byte数组,节约占用jvm的内存空间)
String str = "XXXkaikaixinxinmeiyitian";在常量池中形成表格
#0 str
#1 String
#2 XXXkaikaixinxinmeiyitian 5iuiouiou  ,[]

java元空间

* 1.jdk1.8之前为方法区、永久代 存放静态变量、class信息   之后改为java元空间
* 2.堆中new
*   定义字符串存放在字符串常量池中
*   在jdk1.7之前 字符串常量池存放在方法区中
*   在jdk1.7开始 字符串常量池存放在堆中*/

二、String类的replace( )方法

replace (旧的参数1,要换的参数2) 替换字符串
        String str = "XXXkaikaixinxinmeiyitian";
        //ctrl+alt+v快速添加
        //修改全部
        String modifystr1 = str.replace("meiyitian", "meiyinian");
        String modifystr3 = str.replaceAll("kai", "k");
        //修改第一个
        String modifystr2 = str.replaceFirst("kai", "yaokai");
        System.out.println("修改前的字符串" + str);
        System.out.println("修改后的字符串" + modifystr1);
        System.out.println("修改后的字符串" + modifystr2);
        System.out.println("修改后的字符串" + modifystr3);

 运行结果

修改前的字符串XXXkaikaixinxinmeiyitian
修改后的字符串XXXkaikaixinxinmeiyinian
修改后的字符串XXXyaokaikaixinxinmeiyitian
修改后的字符串XXXkkxinxinmeiyitian

三、String类的split( )方法

split是一个正则表达式,用于分割字符串,* | ^ . \ 等符号在正则表达式中是一种特殊含义的字符,使用这些作为分隔符,必须使用转义符\\加以转义
        String str1 = "江西省|湖南省|湖北省|海南省|山东省|陕西省|山西省|云南省|北京市|西藏|河北省|河南省|河北省|广西|广东省";
        //split是一个正则表达式,* | ^ . \ 等符号在正则表达式中是一种特殊含义的字符,使用这些作为分隔符,必须使用转义符\\加以转义
        String[] arrays = str1.split("\\|");
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }

 运行结果

江西省
湖南省
湖北省
海南省
山东省
陕西省
山西省
云南省
北京市
西藏
河北省
河南省
河北省
广西
广东省

四、 String类的indexOf( )方法

indexOf(String str, int fromIndex)从下标为fromIndex开始查询字符串出现的位置,存在则返回开始出现的下标,不存在返回-1

indexOf(int ch, int fromIndex)从下标为fromIndex开始查询数值对应的字符串出现的位置,存在则返回开始出现的下标,不存在返回-1

        String str = "XXXkaikaixinxinmeiyitian";
        //indexOf(String str) 查询字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf("ai"));
        //indexOf(String str, int fromIndex)从下标为fromIndex开始查询字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf("ai",2));
        //indexOf(int ch, int fromIndex)从下标为fromIndex开始查询数值对应的字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf(56));

运行结果 

4
4
-1

 五、String类的toLowerCase()与toUpperCase()方法

toLowerCase()将字符串全部转为小写  toUpperCase()将字符串全部全部转为大写
        String str = "XXXkaikaixinxinmeiyitian";
        //toLowerCase()全部转为小写  toUpperCase()全部转为大写
        System.out.println("大写转为小写"+str.toLowerCase());
        System.out.println("小写转为大写"+str.toUpperCase());

运行结果 

大写转为小写xxxkaikaixinxinmeiyitian
小写转为大写XXXKAIKAIXINXINMEIYITIAN

 六、整体代码和运行结果

package com.clouds.demo07_Api;

//replace 替换
//split 分割
//split是一个正则表达式,* | ^ . \ 等符号在正则表达式中是一种特殊含义的字符,使用这些作为分隔符,必须使用转义符\\加以转义`

public class demo02_API {
    public static void main(String[] args) {
        //replace (旧的参数1,要换的参数2)
        /*String str 其实是char类型数组(jdk1.8之前是char数组,jdk1.8之后为byte数组,节约占用jvm的内存空间)
        String str = "XXXkaikaixinxinmeiyitian";在常量池中形成表格
        #0 str
        #1 String
        #2 XXXkaikaixinxinmeiyitian 5iuiouiou  ,[]*/
        /*java元空间
        * 1.jdk1.8之前为方法区、永久代 存放静态变量、class信息   之后改为java元空间
        * 2.堆中new
        *   定义字符串存放在字符串常量池中
        *   在jdk1.7之前 字符串常量池存放在方法区中
        *   在jdk1.7开始 字符串常量池存放在堆中*/
        String str = "XXXkaikaixinxinmeiyitian";
        //ctrl+alt+v快速添加14
        //修改全部
        String modifystr1 = str.replace("meiyitian", "meiyinian");
        String modifystr3 = str.replaceAll("kai", "k");
        //修改第一个
        String modifystr2 = str.replaceFirst("kai", "yaokai");
        System.out.println("修改前的字符串" + str);
        System.out.println("修改后的字符串" + modifystr1);
        System.out.println("修改后的字符串" + modifystr2);
        System.out.println("修改后的字符串" + modifystr3);

        String str1 = "江西省|湖南省|湖北省|海南省|山东省|陕西省|山西省|云南省|北京市|西藏|河北省|河南省|河北省|广西|广东省";
        //split是一个正则表达式,* | ^ . \ 等符号在正则表达式中是一种特殊含义的字符,使用这些作为分隔符,必须使用转义符\\加以转义
        String[] arrays = str1.split("\\|");
        for (int i = 0; i < arrays.length; i++) {
            System.out.println(arrays[i]);
        }

        //indexOf(String str) 查询字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf("ai"));
        //indexOf(String str, int fromIndex)从下标为fromIndex开始查询字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf("ai",2));
        //indexOf(int ch, int fromIndex)从下标为fromIndex开始查询数值对应的字符串出现的位置,存在则返回开始出现的下标,不存在返回-1
        System.out.println(str.indexOf(56));

        //toLowerCase()全部转为小写  toUpperCase()全部转为大写
        System.out.println("大写转为小写"+str.toLowerCase());
        System.out.println("小写转为大写"+str.toUpperCase());
    }
}

 运行结果

修改前的字符串XXXkaikaixinxinmeiyitian
修改后的字符串XXXkaikaixinxinmeiyinian
修改后的字符串XXXyaokaikaixinxinmeiyitian
修改后的字符串XXXkkxinxinmeiyitian
江西省
湖南省
湖北省
海南省
山东省
陕西省
山西省
云南省
北京市
西藏
河北省
河南省
河北省
广西
广东省
4
4
-1
大写转为小写xxxkaikaixinxinmeiyitian
小写转为大写XXXKAIKAIXINXINMEIYITIAN

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值