6 String
6.1、String的特点
String s="abc";s是类类型变量,“abc”是一个对象
字符串一旦被初始化就不可以被改变
String s1=new String("abc");
s和s1有什么区别:
s在内存中有一个对象,s1在内存中有两个对象
6.2 常用方法
1、获取
int length();获取长度
char charAt(int index);根据位置,获取该位置上的字符
int indexOf(int ch);根据ch字符获取该字符在字符串中第一次出现的位置
int indexOf(int ch,int formIndex);从formIndex指定位置开始,获取ch字符在字符串出现的位置
int indexOf(String s);根据s获取在字符串中第一次出现的位置
int indexOf(String s,int formIndex);从formIndex指定位置开始,获取s在字符串出现的位置
当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException
如果没有找到,返回-1
int lasetIndexOf();从字符串最后位置反向查找位置,用法同IndexOf相同。
2、判断
boolean startWith(String str);字符串是否以str开头
boolean endsWith(String str);字符串是否以str结尾
boolean isEmpty();字符串是否为空
boolean contains(String str);字符串是否包含str
boolean equals(String str);判断字符串内容是否相同
boolean equalsIgnoreCase(String str);忽略大小写判断字符串是否相同
3、转换
字符数组转成字符串:
构造函数:String(char[])
String(char[],offset,count)将字符数组中的一部分转成字符串
静态方法:static String copyValueOf(char[] data);
static String copyValueOf(char[] data,int offset,int count);
字节数组转成字符串:
构造函数:String(byte[])
String(byte[],offset,count)将字符数组中的一部分转成字符串
基本数据类转成字符串:
static String valueOf(int);
static String valueOf(double);
字符串转成字符数组/字节数组:
char[] toCharArray();
byte[] getBytes();
4、替换
String replace(oldchar,newchar);
如果要替换的字符不存在,返回的还是原来的字符串
String replace(oldstr,newstr);替换字符串
5、切割
String[] split(regex);
6、子串
String substring(begin);
String substring(begin,end);包含头,不包含尾
获取字符串中的一部分
7、转换
String toUpperCase();String toLowerCase();字符串转成大写或小写
String trim();去除字符串两端的空格
int compareTo(String);对两个字符串进行自然顺序的比较
6.3 StringBuffer
StringBuffer是一个容器,长度可变,可以对字符串内容进行修改
1、增删插
StringBuffer append();将制定数据作为参数添加到已有数据的结尾处
StringBuffer insert(index,data);可以将数据添加到指定位置
StringBuffer delete(int start,int end);删除数据,包含start不包含end
StringBuffer deleteCharAt(int index);删除指定位置的字符
2、获取字符串的位置:
int indexOf(String s);
int lastIndexOf(String s);
int length();获取长度
3、定位
char charAt(int index);获取指定位置的字符:
StringBuffer replace(int start,int end,String s);从开始位置到结束位置,替换成s
void setCharAt(int index,char ch);设置指定位置的字符
4、JDK 1.5版本之后出现了StringBuilder
StringBuffer是线程同步
StringBuilder是线程不同步
6.4 基本数据类型对象包装类
基本数据 包装类
byte Byte
short Short
long Long
int Integer
boolean Boolean
float Float
double Double
char Character
1、最常见作用:
基本数据类型和字符串之间的转换
2、 基本数据类型转成字符串
基本数据类型+"";
包装类.toString(基本数据类型值);
如:Integer.toString(36);//将36变成“36”
3、字符串转成基本数据类型
static 包装类.parse基本数据类型(String s);
对象.基本数据类型Value();
6.5 十进制和其它进制互转
1、十进制转成其它进制
toBinaryString();转二进制
toHexString();转八进制
toOctalString();转十六进制
2、其它进制转成十进制
parseInt(String,radix);
6.6 新特性
Integer x = 4;自动装箱,4相当于new Integer(4)
x = x +2;自动拆箱,将x变成int类型进行运算后,在进行装箱赋给x
Integer m = 128;
Integer n = 128;
m==n;//结果位false
Integer a = 127;
Integer b = 127;
a==b;//结果为true,因为a和b指向了同一个Integer对象。当数值爱byte范围内,如果该数值已经存在,则不会再开辟新空间。