String 字符不可以改变 她的内部 final 修饰类,不可以被继承
private final char value[]; 值用数组接受, 并用 final修饰
char[] v; this.value = v; 的到的值是传入的大小
值一单确定不可以改变
StringBuffer和StringBuilder都是 AbstractStringBuilder 子类
StringBuffer 它的方法由synchronized修饰,线程安全 效率较低 字符可以改变 synchronized
StringBuilder 线程不安全 效率较高 字符可以改变
AbstractStringBuilder 字符可以改变
char value[]; 用数组接受 没有被final修饰 里面的数值可以改变
1
2
3
4
|
public
StringBuffer(String str) {
super
(str.length() +
16
);
append(str);
}
|
1
2
3
4
5
6
7
8
9
10
11
|
public
AbstractStringBuilder append(String str) {
if
(str ==
null
) str =
"null"
;
int
len = str.length();
if
(len ==
0
)
return
this
;
int
newCount = count + len;
if
(newCount > value.length)
expandCapacity(newCount);
str.getChars(
0
, len, value, count);
count = newCount;
return
this
;
}
|
1
|
传入一个新的值, 原来的数组太小, 就扩容
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
String a=
new
String(
"abc"
);
System.out.println(a.length());
//输出数组的长度 = 3
System.out.println(a.charAt(
1
));
//返回指定索引处的 char 值 b
System.out.println(a.indexOf(
"b"
));
//从前往后找,b在的位置 1
System.out.println(a.lastIndexOf(
"c"
));
//从后往前找,c在的位置,2 返回指定子字符串在此字符串中最右边出现处的索引。
System.out.println(a.contains(
"a"
));
//查询数组有没有 a 有 a就返回true
System.out.println(a.startsWith(
"a"
));
//查询是不是a开头, 如果是就返回true
System.out.println(a.endsWith(
"c"
));
//查询是不是以c结尾 如果是就返回true, 如果不是就返回false
System.out.println(a.toLowerCase());
//把所有数组的字符串都转为小写 ,使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
System.out.println(a.toUpperCase());
//把所有数组的字符串都转为大写
System.out.println(a.substring(
1
));
//截取字符串 起b开始截取b以后的全部字符串
System.out.println(a.substring(
0
,
2
));
//截取字符串 起a开始到c结束, 但是不包括c 包头不包尾
System.out.println(a.replace(
"a"
,
"z"
));
//替换, 将 a 替换成 A 也可以换成 其它的 比如 z
}
|
1
2
3
4
5
6
|
String a1=
new
String(
"小高;小立,小明 "
);
String[] a2= a1.split(
";|,| "
);
//分离 分离以后变成数组
for
(String string : a2) {
System.out.println(string);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<p>
StringBuilder s=
new
StringBuilder(
"abcde"
);
s.append(
"fjql"
);
// 存值
s.reverse() ;
//让字符全部反过来, 比如 abc 反 cba
</p>
<p>
System.out.println(s);
System.out.println(s.length());
System.out.println(s.indexOf(a));
System.out.println(s.toString().contains(a));
//如果StringBuilder里面没有想要的方法就吧他转成String 加 toString就可以
</p>
|