------- android培训、java培训、期待与您交流! ----------
String类用于描述字符串
String s1 = "abc";//s1是一个类类型变量,"abc"是一个对象
字符串最大的特点:一旦被初始化就不可以被改变
String s2 = new
String(
"abc"
); 创建了两个对象
System.out.println(s1 == s2); false
System.out.println(s1.equals(s2)); true String类复写了Object类中的equals方法,判断字符串是否相同
方法
1,获取
1.1
int length();
//获取字符串的长度
1.2
char
charAt(index);
//通过索引获取对应的字符//超过长度出现角标越界异常
2.3
int
indexOf(
int
ch);
//通过传入int数或者是字符找对应索引//如果没有找到返回-1
int
idnexOf(
int
ch,fromIndex);
//在指定fromIndex的位置查找传入的字符
2.4
int
indexOf(string str);
//通过传入字符串查找字符串所对应的索引;如果返回-1,表示该str不在字符串中,可以用于判断是否包含
int
idnexOf(string str,fromIndex);
//通过指定fromIndex的位置查找传入的字符串
2.5 String substring(start);
//通过传入的索引值开始向后截取,截取的是索引到length
String substring(start,end);
//通过传入的两个索引值截取,有开始有结尾,包含头不包含尾
2,判断
2.1 boolean
equals(Object);
//判断传入的字符串是否与调用的字符串字符序列是否相同
2.2
boolean
contains(string);
//判断传入的字符串是否被调用的字符串包含
2.3
boolean
startsWith(string);
//判断调用的字符串是否以传入的字符串开头
2.4
boolean
endsWith(string);
//判断调用的字符串是否以传入的字符串结尾
2.5
boolean
isEmpty();
//判断字符串是否为空,1.6以后。判断长度是否为0
3
,转换
3.1
static
String copyValueOf(
char
[]);
//将字符数组转换成字符串
static
String copyValueOf(
char
[] data,
int
offset,
int
count);
//将字符数组转换字符串,通过offset开始,截取count个
3.2
static
String valueOf(
int
);
//将一个int数转换成字符串
static
String valueOf(
double
);
static
String valueOf(
boolean
);
* 3.3 char[] toCharArray();
//将字符串转换成字符数组
3.4 byte[] getBytes(); //将字符串转换成字节数组
4,替换
4.1 String replace(oldChar,newChar); //将newChar替换OldChar。如果OldChar不存在,原字符串直接赋值给替换后字符串
4.2 String replace(string,string);
5,切割
String[] split(regex);
//通过regex切割字符串,切割后会产生一个字符串数组
String s = "a,b,c,d"
;
String[] arr = s.split(
","
);
6,去除字符串两空格。
String trim();
转换大小写
String toUpperCase();
String toLowerCase()
对两个字符串进行自然顺序比较(大于返回正数,等于返回负数)
int compareTo(sstring)
StringBuffer
1,可以添加基本数据和引用数据。添加数据完毕,其实底层都是将其转成字符串进行使用。通过toString方法转成字符串。
2,该容器和数组不一样,数组是固定长度的,而且只能添加同一类型。而StringBuffer长度是可变的,可以添加不同类型。类型一致的数据,可以使用数组,也可以StringBuffer。
但是数组添加元素,可以保证数据的类型不变。而StringBuffer添加完数据,全变成字符串。
3,StringBuffer可以对字符串进行修改
StringBuffer的常用方法
1,
添加
1.1
StringBuffer append(
int
x);
//在缓冲区的末尾追加
1.2
StringBuffer insert(
int
index,String str);
//在指定索引位置添加
2
,删除
2.1
StringBuffer delete(
int
start,
int
end);
//包含头索引,不包含尾部索引
2.2
StringBuffer delete(
0
,sb.length);
//清空缓冲区
StringBuffer sb =
new
StringBuffer();
sb.append(
"aaaaa"
);
sb =
new
StringBuffer();
2.3
StringBuffer deleteCharAt(
int
index);
//根据指定的索引删除索引对应的元素
3
,修改
3.1
StringBuffer replace(
int
start,
int
end,string);
//用String替换,包含头不包含尾
3.2
void
setCharAt(
int
index ,
char
);
//修改,把指定索引位置的值改成传入的char值
3.3
StringBuffer reverse();
//将缓冲区的元素反转
3.4
void
setLength(
int
len);
//根据传入的len值截取缓冲区的长度
4
,查找
4.1
int
indexOf(str);
//查找str在缓冲区第一次出现的位置
4.2
int
lastIndexOf(str);
//从后向前查找查找str在缓冲区第一次出现的位置
StringBuilder(1.5后)和StringBuffer
1.StringBuilder和StringBuffer与String的区别
StringBuilder和StringBuffeer是可变字符序列
String是不变得,一但被初始化,就不能改变
2.StringBuilder和StringBuffer的区别
StringBuilder是线程不安全的,所以效率比较高,1.5版本出现
StringBuffer是线程安全的,效率相对较低,1.0版本出现的
基本数据类型 引用数据类型
int Integer
char Character
用于基本数据类型和字符串类型之间的转换
基本数据类型+""
基本数据类型.toString(基本数据类型值)
静态调用
xxx a = XXX.perseXxx(String)
int parseInt(String str)
对象调用
Inerger i = new Inerger("123");
int num = i.intValue()
进制转换
Integer.toBinaryString()
Integer.toHexString()
Integer.toOctalString
Integer.parseInt(string,radix)
==和equals区别
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
如果数值在byte范围内容,对于新特性,如果数值已经存在,则不会再开辟新的空间