一、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