String类
-
字符串是一个特殊的对象。
-
字符串一旦初始化就不可以被改变。
String s="abc";//创建一个字符串对象在常量池中
String s1=new String("abc");//创建了两个对象,一个new字符串对象在堆内存中。类比new一个对象的内存图
特点:
-
字符串对象一旦被初始化就不会改变。
-
字符串常量池没有就建立;池中有,直接使用。共享
String构造函数
主要几个String构造函数
String(byte[] bytes){}//字节型
String(byte[] bytes,int offset,int length){}
String(char[] arr){}//字符数组
String(char[] arr,int offset,int count){}
常见功能
获取
1、获取字符串中字符的个数(长度)
int length();
2、根据位置获取字符
char charAt(int index);
3、根据字符(字符串)获取字符串中第一次出现的位置。从前往后查
1. int indexOf(int ch);
2. int indexOf(int ch,int fromIndex); //从指定位置对ch进行查找
3. int indexOf(String str);
4. int indexOf(String str,int fromIndex);
4、根据字符(字符串)获取字符串中第一次出现的位置。从后往前查
1. int lastIndexOf(int ch);
2. int lastIndexOf(int ch,int fromIndex);
3. int lastIndexOf(String str);
4. int lastIndexOf(String str,int fromIndex);
5、获取字符串中一部分字符串,子串
String substring(int beginIndex, int endIndex);//左闭右开。(要begin不要end)
String substring(int beginIdex);
转换
1、将字符串转换成字符串数组(切割)
String[] split(String regex);//涉及到正则表达式
2、将字符串转换成字符(char)数组
char[] toCharArray();
3、将字符串转换成字节数组
byte[] getBytes();
4、将字符串中的字母转换成大小写
String toUpperCase();//大写
String toLowerCase();//小写
5、将字符串中的内容进行替换
String replace(char oldChar,char nowChar);
String replace(String s1,String s2);
6、将字符串两端空格去除
String trim();
7、将字符串进行连接
String concat(String str);
判断
1、两个字符串内容是否相同
boolean equals(Object obj);
boolean equalsIgnoreCase(String str); //忽略大小写比较字符串内容
2、字符串中是否包含指定字符串
boolean contains(String str);
3、字符串是否以指定字符串开头,或结尾
boolean startsWith(String str);//开头
boolean endsWith(String str);//结尾
比较
按字典顺序比较两个字符串
int compareTo(String anotherString)
字符串对象的规范化表示
String intern();
事例:
String t=new String("abc");//new一个String对象,在堆内存中
t.intern();//将"abc"添加进字符串池中