文章目录
- 📖前言:
- 🎀String类的构造方法两种创建形式
- 🪅**隐式创建:**
- 🪅**显式创建:**
- 🎀String类底层结构:
- 🎀String类常用方法:
📖前言:
本篇博客主要以介绍String类的常用方法及一些底层原理
🎀String类的构造方法两种创建形式
🪅隐式创建:
String s = "abc";
【🪧java中的所有字符串“ ”,都可以视为String类的实例
】
【解析】
先在栈中创建一个String类型的引用变量s,然后去字符串常量池中查找有没有"java"。
如果没有则在常量池中添加”java”, s引用变量指向常量池中的”abc”,
如果常量池中有,则直接指向改地址即可,不用重新创建.
🪅显式创建:
String s = new String("abc");
【🪧一概
在堆中创建新对象,值存储在堆内存的对象中。】
🎀String类底层结构:
jdk8
中字符串底层是:final修饰的char[ ]数组
,故其对象值一旦定义就不能改变.
jdk9之后
字符串底层开始变为byte[ ]字节数组
了,原因是字节向内存申请的空间更小,有利于节省内存
🎀String类常用方法:
常用方法 | 方法内容介绍 |
---|---|
构造方法 | 方法内容介绍 |
public String (String str) | 📖初始化新创建的String对象,就是给其赋值为str |
public String (byte[] bytes) | 📖将一个字节数组转化成字符串 |
public String (char[] value) | 📖将一个字符数组转化成字符串 |
替换功能 | 方法内容介绍 |
String trim () | 📖 将字符串两边的空格去掉 |
String replace (String old,String new) | 📖replace(“旧元素”,“新元素”)将字符串中所有’'旧元素”替换成新元素。 |
String replaceAll (String regex, String replacement) | 📖replaceAll(“regex”,“新元素”)遵循正则表达式,将字符串中对应元素替换成新元素。 |
String replaceFirst (String regex, String replacement) | 📖replaceFrist(“regex”,“新元素”)-》:遵循正则表达式,将字符串中第一个对应元素替换成新元素。 |
判断功能 | 方法内容介绍 |
boolean contains (String str) | 📖判断此字符串是否为另一个子串。 |
int compareTo (String anotherString) | 📖【按两字符串从前往后顺序拿出相同下标字符 比较】若相等就重复之前操作,否则返回两字符的差 |
int compareToIgnoreCase (String str) | 📖【忽略字母大小写,满足 compareTo ()比较原则】 |
boolean isEmpty () | 📖对象是否为""(空串),【注意:这里与null作区分,null是不存在,它连isEmpty()都没有。】 |
boolean matches (String regex) | 📖【正则表达式匹配】会告诉这个字符串是否匹配给定的规则 |
boolean equals (String str) | 📖判断两个字符串对象内容是否相等. |
boolean equalsIgnoreCase (String str) | 📖判断两个字符串对象内容是否相等.(不区分大小写) |
boolean startsWith (String prefix) | 📖是否以xx开头 |
boolean endsWith (String suffix) | 📖是否以xx结尾 |
获取功能 | 方法内容介绍 |
int length () | 📖【获取长度】返回字符串长度 |
char charAt (int index) | 📖【获取字符串单个字符】找到i下标下的对应元素 |
int indexOf (String str) | 📖【获取字符下标】返回字符串第一次查找字符的下标 |
int lastIndexOf (int ch) | 📖【获取字符下标】返回字符串最后一次查找字符的下标 |
int indexOf (String str,int fromIndex) | 📖从下标fromIndex位置开始找,例如:indexof(‘’,indexof(‘’)+1)找第二个出现的字符 |
String substring (int start) | 📖【从下标satrt到最后】拷贝子串 |
String substring (int start,int end) | 📖【指定区间】拷贝子串 |
转换功能 | 方法内容介绍 |
String concat (String str) | 📖【只支持String类型之间拼接!】字符串拼接符,相当于 + |
byte[] getBytes () | 📖将字符串转化为字节数组,可以对数组进行操作,通过构造方法实现数组转换字符串 |
char[] toCharArray () | 📖将字符串转化为字符数组,可以对数组进行操作,通过构造方法实现数组转换字符串 |
static StringvalueOf (T chs) | 📖【将T类型转化成String字符串】 |
String toLowerCase () | 📖将字符串字母均转换为小写 |
String toUpperCase () | 📖将字符串字母均转换为大写 |
Stirng[] split (String regex); | 📖以正则表达式或指定字符分割 |