1.String类
1).使用“+”运算符连接字符串时注意以下三点:
·字符串与字符串进行“+”连接时,第二个字符串会连接到第一个字符串之后
·字符串与其他类型进行“+”连接时,因字符串在前面,所以其他类型的数据都将转换成字符串与前面的字符串进行连接
·其他类型与字符串进行“+”连接时,因字符串在后面,其他类型按照从左向右进行运算,最后再与字符串进行连接
示例:
public class test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String str = "hello";
System.out.println(str + "world");
System.out.println(str + 10 + 20);
System.out.println(10 + 20 + str);
}
}
输出结果:
helloworld
hello1020
30hello
2).String类常用的方法:
·length(),获取字符串长度
·substring(i),截取从下标i开始的子字符串
·substring(i,j),截取从下标i开始到j结束的子字符串
·toLowerCase(),转换成小写
·toUpperCase(),转换成大写
示例:
public class test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String str = "I am zhangsan, welcome to China!";
System.out.println("字符串长度:" + str.length());
System.out.println("截取从下标5开始的子字符串:" + str.substring(5));
System.out.println("截取从下标5开始到10结束的子字符串:" + str.substring(5, 10));
System.out.println("转换成小写:" + str.toLowerCase());
System.out.println("转换成大写:" + str.toUpperCase());
}
}
输出结果:
字符串长度:32
截取从下标5开始的子字符串:zhangsan, welcome to China!
截取从下标5开始到10结束的子字符串:zhang
转换成小写:i am zhangsan, welcome to china!
转换成大写:I AM ZHANGSAN, WELCOME TO CHINA!
2.StringBuffer类
1).StringBuffer用来创建和操作字符串对象,和String的区别如下:
·String创建的字符串是不可变的,如果改变字符串变量的值,是在内存中创建一个新的字符串,字符串变量将引用新创建的字符串地址,而原来的字符串在内存中依然存在且内容不变,直至Java的垃圾回收系统对其进行销毁。
·StringBuffer创建的字符串是可变的,当使用StringBuffer创建一个字符串后,该字符串的内容可以通过append()、insert()、setCharAt()等方法进行改变,而字符串变量所引用的地址一直不变,最终调用它的toString()方法转换成一个String对象。
2).StringBuffer类常用方法:
·capacity(),字符串的初始容量
·append("aaa"),在字符串后追加字符串aaa
·insert(i,"bbb"),在字符串第i位置插入字符串bbb
示例:
public class test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
StringBuffer sb = new StringBuffer();
System.out.println("字符串的初始容量为:" + sb.capacity());
// 追加字符串
sb.append("java");
System.out.println("追加后:" + sb);
// 插入字符串
sb.insert(0, "hello");
System.out.println("插入后:" + sb);
}
}
输出结果:
字符串的初始容量为:16
追加后:java
插入后:hellojava
3.StringBuilder类
StringBuilder与StringBuffer类似也是创建一个可变的字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全,常用方法和StringBuffer一样。