------- android培训、java培训、期待与您交流! ----------
String类代表字符串,java程序中所有的字符串字面值(如”abc”)都作为此类的实例实现。他没有子类,字符串是常量,他们的值在创建之后就不能被更改。
String s1 = new String(“abc”);
String s1 = “abc”;
如上,就是字符串的两种创建方法,字符串最大的特点是一旦被初始化就不可能被改变。但是指向字符串的类类型变量是可以变的,如上,就是s1可以变化,不能变的是”abc” 的内容。
在String类中,复写了Object中的equals方法,建立了自己独特的判断内容方式,该方法用于判断字符串是否相等。
String s1 = “abc”;
String s2 = new String(“abc”);
对于s1和s2的区别:
s1有一个对象,就是”abc”;
s2有两个对象,分别是”abc”,和new String;
字符串在内容中有一个常量池,用于存放字符串。如果用到这个常量池中没有的字符串,那么就会创建这个常量,如果有这个常量,就不会创建新的常量,而使用已有的常量。
String类适用于描述字符串事物,那么就提供了多个方法对字符串进行操作,而字符串的常见操作有,获取,判断,转换,替换。
int length();
char charAt(int index);
int indexOf(int ch);返回的是ch在字符串中第一次出现的位置
int indexOF(int ch,int fromIndex);从指定位置开始,获取ch在字符串中的位置。
int indexOf(String str);返回str在字符串中第一次出现的位置
int indexOF(String str,int fromIndex);从指定位置开始,获取str在字符串中的位置
boolean contains();
特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1表示str不存在,所以也可以用indexOf判断字符串是否包含。
boolean isEmply():原理就是判断字符串长度是否为零。
boolean startWith(String str);
boolean startWith(String str);
boolean equals(String str);复写了Object类中的equals。
boolean equalsIgnoreCase();
String(char[])
String(char[],offset,count);将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[]);
static String copuValueOf(char[] data,intoffset,int count)
static String valueOf(char[]);
char toCharArray[];
String(byte[])
String(byte[],offset,count);
byte[] getBytes[];
static String valueOf(int);
但是还有另外一种方式,比如3+””;也可以将3转成字符串,所以这并不常用
static String valueOf(double);
String replace(old char,new char);
原字符串不变,返回一个新字符串,若找不到被替换的字符,则返回原字符串。
String replace(old String,new String);
String[] split(String)str;
传入一个要切割的符号,返回的是一个字符串数组
subString(int begin);
从指定位置到结尾处
subString(int begin,int end) ;
从指定位置到指定结尾,包含头不包含尾。
String toUpperCase();
String toLowerCase();
String trim();
int compareTo(String);将两个字符串依次比较,返回整数负数或者零表示大小。
StringBuffer是一个容器,可以对字符串的内容进行修改,它有很多和String相同的方法,StringBuffer的长度是可变的。
StringBuffer和String类很像,也有着操作字符串的方法,有存储,删除,获取,修改四类方法。
StringBuffer的存储方法有两种
append();将字符串存储到StringBuffer容器中。
insert(int index,String str);将数据插入指定位置。
delete(int begin,int end);删除缓冲区的数据,含头不含尾
deletecharAt(int index)删除指定位置的数据
char charAt(int index);获取指定位置的字符
int indexOf(String str)获取字符串的位置
String substring(int start,int end);返回的是一个String,含头不含尾
replace(int start,int end,String str);替换,含头不含尾的替换
setcharAt(int index,char ch);替换指定位置的字符
reverse();反转字符串。
它是后期1.5版本出现的String容器,和StringBuffer用法一样,唯一不同的是不同步。
即是升级出现的,升级的三个因素有:
方便书写;提高效率;提高安全性。
基本数据类型是有8种,分别是byte,short,int,long,boolean,float,double,char。
它们对应的包装类是:
通过将基本数据类型包装成对象,就可以使用这些对象的方法。
运行结果:
对于Integer对象,内存中也有一个小于常量池,对于小于byte类型(128)的数,若已经存在就不会再开辟新的空间,所以对于两个127的Integer是执行同一地址的,但是128则不是。