JAVA 常用对象 Api
一、String 类
String 类的特点
字符串对象一旦被初始化就不会改变。字符串 abc 存储在字符串常量池中。
/**
演示字符串定义的第一种方式,并明确字符串常量池的特点。
池中没有就建立,池中有,直接用。
*/
class StringDemo{
public static void main(String[] args){
//在内存中有一个字符串缓冲区(字符串常量池)。
String s = "abc";//先到字符串常量池中找,没有,创建,赋值
String s1 = "abc";//先到字符串常量池中找,有,不再创建,直接赋值
//所以s与s1指向同一个地址
System.out.println(s==s1);//true
}
}
字符串 new String("abc") 存储在堆内存中
class StringDemo{
public static void main(String[] args){
String s = "abc";//创建一个字符串对象在常量池中。
String s1 = new String("abc");//创建两个对象,一个new一个字符串对象在堆内存中。
System.out.println(s==s1);//false
//字符串对象重写了Object的equals方法,比较内容,而不比较地址
System.out.println(s.equals(s1));//true
}
}
String 中的常用方法
1、构造函数
char[] arr={'a','b','c'}
String s = new String(arr);//将数组变为字符串abc
2、获取字符串长度
int length();
3、根据位置获取字符
char charAt(int index);
4、根据字符获取在字符串中第一次出现的位置
int indexOf(int ch)
5、获取字符串中一部分字符串,也叫子串
String substring(int beginIndex,int endIndex);
6、将字符串变成字符串数组(字符串的切割)
String[] split(String regex);//涉及到正则表达式
7、将字符串变成字符数组
char[] toCharArray();
8、将字符串变成字节数组
byte[] getBytes();
9、将字符串中的字母转成大小写
String toUpperCase();//大写
String toLowerCase();//小写
10、将字符串中的内容进行替换
String replace(char oldch,char newch);
String replace(String s1,String s2);
11、将字符串两端空格去除。
String trim();
12、将字符串进行连接。
String concat(String)
13、两个字符串内容是否相同
boolean equals(Object obj);
boolean equalsIgnoreCase(String str);//忽略大写比较字符串内容
14、字符串只是否包含指定字符串。
boolean contains(String str);
15、字符串是否以指定字符串开头,是否以指定字符串结尾
boolean startsWith(String str);
boolean endsWith(String str);
二、StringBuffer
特点
StringBuffer 就是字符串缓冲区,用于存储数据的容器。
1、长度是可变的。
2、可以存储不同类型的数据。
3、最终要转成字符串使用。
4、可以对字符串进行修改。
既然是一个容器,应该具备什么功能?
1、添加:StringBuffer append(data)
StringBuffer insert(index,data)
2、删除:StringBuffer delete(start,end)//包含头,不包含尾
StringBuffer deleteCharAt(int index)//删除指定位置的元素
3、查找:char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4、修改:StringBuffer replace(start,end,string)
void setCharAt(index,char);
public static void main(String[] args){
//创建缓冲区对象
StringBuffer s = new StringBuffer();
StringBuffer s1 = s.append(4).append(false);
s.insert(1,"haha");
System.out.println(s==s1);//true
//清空缓冲区
s.delete(0,s.length())
}
三、StringBuilder(jdk 1.5)
jdk 1.5 以后出现了功能和 StringBuffer 一样的对象,就是 StringBuilder,不同的是:
- StringBuffer 是线程同步的,适用于多线程。
- StringBuilder 是线程不同步的,速度更快,适用于单线程。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论