1、字符串都是对象。
2、字符串是常量。它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String 对象是不可变的,所以可以共享。
例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
3
、
String s1 =
"abc"
;
String s2 =
new String("abc");
System.
out.println(s1 ==s2);//false
//
因为
String
复写了
equals
方法
//
建立字符串自己的判断相同的方法
System.
out.println(s1.equals(s2));//true
4
、
String
方法查找练习。
// 1
、字符串是否以指定的字符串开头。结尾同理。
String s1=
"asafgfhg"
;
System.
out.println(s1.startsWith("asd"));
System.
out.println(s1.endsWith("fhg"));
// 2
、字符串中是否包含另一个字符串。
String s2=
"123456"
;
System.
out.println(s2.contains("12354"));
// 3
、字符串中另一个字符串出现的位置。
String s3=
"asdfafd"
;
System.
out.println(s3.indexOf("af"));
// 4
、字符串中指定的字符串替代另一个字符串。
String s4=
"adfhsdhfghhhj"
;
s4=s4.replace(
"h"
,
"d"
);
System.
out.println(s4);
// 5
、字符串如何比较大小
String str1 =
"asdff"
;
String str2 =
"asdfF"
;
System.
out.println(str1.compareTo(str2));
System.
out.println(str1.compareToIgnoreCase(str2));
// 6
、将字符串转变为字符数组。或字节数组。
String s6=
"1323434"
;
/*char[] cha=s6.toCharArray();
for(
int i=0;i<cha.length;i++){
System.out.println(
cha);
}*/
byte[] b=s6.getBytes();
for(int i=0;i<b.length;i++){
System.out.println(b);
}
// 7、将字母字符串转为大写的字母字符串。
String s7="asdfg";
System.out.println(s7.toUpperCase());
// 8、将字符串按照指定的方式分解成多个字符串,“lisi,wangwu,zhaoliu”获取三个姓名
String s8="lisi,wangwu,zhaoliu";
String [] names=s8.split(",");
for(int i=0;i<names.length;i++){
System.out.println(names);
}
5、StringBuffer和StringBuilder的区别
StringBuilder:非同步的。单线程访问效率高。
StringBuffer:同步的。多线程访问安全。