string类
1 String类创建对象的方法
2 String类的比较
基本数据类型做比较是使用==,String类型比较可以使用==案例一:
public class StringTest {
public static void main(String[] args) {
int a=5;
int b=5;
//基本数据类型可以用==判断是否相等
//==是判断栈里边的值是否相等
System.out.println(a==b);
String s1="abc";
String s2=new String("abc");
System.out.println(s1==s2);
//判断字符串的值是否相等要通过String类中equals方法进行判断
System.out.println(s1.equals(s2));
//一般来说直接输出对象会输出对象在内存中的地址
//但是String类比较特殊在直接输出Strng对象时,系统会默认调用toString方法输出字符串
System.out.println(s2);
}
}
案例二
public class StringTest {
public static void main(String[] args) {
String s1="abc";
String s2="abc";
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
运行结果
案例三:
public class StringTest {
public static void main(String[] args) {
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
s1=s2;
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
通过案例二、案例三说明:
创建String类型对象时,如果采用的是直接赋值方式,如果后面的字符串对象的内容和前面字符串对象的内容相同时,不再开辟新的堆内存空间,而是共用前面的。所以在平时编程中尽量使用直接赋值的方式创建字符串对象,这样可以节约内存空间。
3 String类与数组装换
◆数组==》字符串(借助String类型的构造方法)
◆字符串==》数组(借助String类型的toCharArray()方法)
public class StringTest {
public static void main(String[] args) {
//数组--》字符串
char[] cs={'h','e','l','l','o'};
String s=new String(cs);
System.out.println(s);
//字符串--》数组
String s2="world";
char[] cs2=s2.toCharArray();
for(int i=0;i<cs2.length;i++){
System.out.println(cs2[i]);
}
}
}
4 String类的常用方法
◆取得字符串的长度
◆比较字符串的内容是否相等
◆比较字符串的内容是否相等忽略大小写
◆判断某个字符是否在字符串中
◆取出字符串中指定位置的字符
◆去掉字符串首尾空格
◆截取字符串的一部内容
◆字符串大小写转换
◆判断字符串是否以XXX开头或结尾
◆替换字符串中某个字符
◆按照指定方式分割字符串
补充
String StringBuffer StringBuilder的区别
String值不可变(堆中的值)
String字符串拼接时占用内存多
StringBuffer和StringBuilder值可变
StringBuilder线程安全 StringBuffer效率高线程不安全