没人是你的光芒,就自己照亮远方
概念
String对象为“不可变对象”。指的是对象内部的成员变量的值无法再改变。String类对象也称为“不可变字符序列”
StringBuilder和StringBuffer称之为“可变字符序列”
- StringBuffer JDK1.0版本提供的类,线程安全,做线程同步检查, 效率较低。
- StringBuilder JDK1.5版本提供的类,线程不安全,不做线程同步检查,因此效率较高。 建议采用该类。
常用方法
- String类常用方法
- StringBuilder常用方法
- 构造方法:
public StringBuilder()
:构造一个空的StringBuilder容器。
public StringBuilder(String str)
:构造一个StringBuilder容器,并将字符串添加进去。
代码:
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder("abcdefg");
System.out.println(sb1);
System.out.println(sb2);
}
}
结果:
-
其他常用方法:
public StringBuilder append(...)
:添加任意类型数据的字符串形式,并返回当前对象自身。public String toString()
:将当前StringBuilder对象转换为String对象。public void setCharAt(int index, char ch)
:将index对于的内容替换传进去的字符
1.append方法
append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。例如:
public class TestStringBuilder {
public static void main(String[] args) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
// 可以添加 任何类型
sb1.append("hello");
sb1.append("world");
sb1.append(true);
sb1.append(100);
System.out.println("sb1:"+sb1);
/*
在我们开发中,会遇到调用一个方法后,返回一个对象的情况。
然后使用返回的对象继续调用方法。
append方法的链式调用便可应用于这种情况*/
sb2.append("abc").append("def").append(false).append(100);
System.out.println("sb2::"+sb2);
}
}
结果:
2.toString方法
public class Test {
public static void main(String[] args) {
StringBuilder sb3=new StringBuilder("abcd");
//将String类转换为StringBuilder类
String s=sb3.toString();
//将StringBuilder类转换为String类
System.out.println(s);
System.out.println(sb3);
}
}
结果:
3.setCharAt方法
public class Test{
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("abcdef");
System.out.println(sb);
sb.setCharAt(2, 'M'); //将索引位置为2的内容替换为M
System.out.println(sb);
结果:
其他基本数据类型的转换
public class TestWrappedClass {
public static void main(String[] args) {
//基本数据类型转成包装类对象
Integer a =new Integer(3);//将整型3转化为Integer包装类
Integer b= Integer.valueOf(30); //将整型30转化为Integer包装类
//把包装类对象转成基本数据类型
int c=b.intValue();
double d=b.doubleValue();
//把字符串转成包装类对象
Integer e= new Integer("999");
Integer f= Integer.parseInt("4354");
//Integer f= Integer.valueOf("4354");
//把包装类对象转成字符串
String str =Integer.toString(f);
//String str =f.toString();
//String str=String.valueOf(f);
//基本数据类型与String类的互相转换
int k=10;
String s= String.valueOf(k); //整型转为String
int l=Integer.valueOf(s); //String转为整型
}
}