String类
概述
本质就是一个字符数组
字符串特点
1.字符串本质就是字符数组,任何字符串都会转换成字符数组保存在String类中Value成员中
2.Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。 “abc” “HelloWorld”
3.字符串是常量,它们的值在创建之后不能更改[这里指的是内存,而不是字符串的内容]
4.字符串缓冲区支持可变的字符串 StringBuffer和StringBuilder
5.String 对象是不可变的,所以可以共享
6.其实我们不需要考虑字符串的拼接问题,因为编译器已经帮我们处理,如下所示:
s = (new StringBuilder(String.valueOf(s))).append(“天天向上”).toString();
System.out.println((newStringBuilder(“s:”)).append(s).toString());
虽然编译器对 + 拼接操作做了优化,但是能够尽量自己使用字符串缓冲区就尽量自己使用
7.String s = “Hello” 和 String s = new String(“Hello”);的区别
前者只在方法区【类加载】创建了一个对象,后者分别在堆区【new】和方法区【类加载】创建了两个对象
8.Java提供了一个方法 String intern() 能够将指向堆区指针指向方法区
字符串的构造方法
public String() 创建一个空字符串对象
public String(String original) 创建一个内容为original的字符串对象
public String(char[] value) 将字符数组转换成字符串
public String(char[] value, int index, int count) 将字符数组的一部分转换成字符串
public String(byte[] bytes) 将字节数组转换成字符串
public String(byte[] bytes, int offset, int length) 将字节数组一部分转换为字符串
字符串成员方法
一、获取相关方法
char charAt(int index)
获取index索引相对应的字符
int indexOf(int ch)
获取某个字符ch在字符串中的索引
int indexOf(String str)
获取字符串str在源字符串中出现的索引
int indexOf(int ch,int fromIndex)
从fromIndex开始从左往右找,第一次出现字符ch的索引
int indexOf(String str,int fromIndex)
从fromIndex开始从左往右找,第一次出现字符串str的索引
int lastIndexOf(int ch)
从右往左找,第一次出现字符串ch对应的索引
int lastIndexOf(int ch,int fromIndex)
从fromIndex开始从右往左找,第一次出现字符ch的索引
int lastIndexOf(String str,int fromIndex)
从fromIndex开始从右往左找,第一次出现字符串str的索引
String substring(int start)
从start截取字符串到字符串末尾
String substring(int start,int end)
从start索引出开始截取到end索引
int length()
获取字符串的长度z
二、判断相关方法
boolean isEmpty()
判断字符串是否为空。
boolean equals(Object obj)
将此字符串的内容与指定的对象比较,区分大小写。
boolean equalsIgnoreCase(String str)
将此 String 与另一个 String 比较,忽略大小写。
boolean contains(String str)
判断字符串中是否包含方法传入的字符串。
boolean startsWith(String str)
判断字符串是否以某个指定的字符串开头。
boolean endsWith(String str)
判断字符串是否以某个指定的字符串结尾。
三、转换相关方法
byte[] getBytes()
将字符串转化为字节数组。
char[] toCharArray()
将字符串转化为字符数组。
static String valueOf(char[] chs)
返回 char 数组参数的字符串表示形式。
static String valueOf(int i)
返回 int 参数的字符串表示形式。
String toLowerCase()
将此 String 中的所有字符都转换为小写。
String toUpperCase()
将此 String 中的所有字符都转换为大写。
String concat(String str)
将指定字符串连接到此字符串的结尾
四、其他方法
String replace(char old,char new)
替换功能。
String replace(String old,String new)
替换功能。
String trim()
去除字符串两空格。
int compareTo(String str)
按字典顺序比较两个字符串。
int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略大小写。
public String[] split(String regex)
分隔字符串成字符数组
static String format(Locale l, String format, Object… args)
使用指定的区域设置,格式字符串和参数返回格式化的字符串。
static String format(String format, Object… args)
使用指定的格式字符串和参数返回格式化的字符串。
五、正则表达式相关方法
1.字符串查找操作 Pattern和Matcher的find方法
2.字符串匹配操作 字符串的matches()方法
3.字符串替换操作 字符串的replaceAll()和replaceFirst()方法
4.字符串分割 split() 方法