02Java语法回顾_常用API类之StringBuffer
读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。
StringBuffer简介
/*
* StringBuffer:字符串缓冲区类。
* 与String的区别?
* String一旦被赋值,值不能发生改变。而StringBuffer,值还可以改变。
* 为什么呢?
* StringBuffer采用的是缓冲区机制。
* 一开始,首先开辟一些空间,然后,随着数据的增多,然后,还可以继续开辟空间。这些操作针对的是同一个对象。
*
* 构造方法:
* StringBuffer()
* StringBuffer(int capacity)
* StringBuffer(String str)
*
* String和StringBuffer的转换:通过构造方法可以实现。
*
* 成员方法:
* public int length():字符个数。实际长度。
* public int capacity():字符容量。理论长度。
*/
StringBuffer测试代码
public class StringBufferDemo {
public static void main(String[] args) {
// 方式1
StringBuffer sb = new StringBuffer();
System.out.println("sb:" + sb);
System.out.println("sb.length():" + sb.length());
System.out.println("sb.capacity():" + sb.capacity());
System.out.println("------------------------------");
// 方式2
StringBuffer sb2 = new StringBuffer(50);
System.out.println("sb2:" + sb2);
System.out.println("sb2.length():" + sb2.length());
System.out.println("sb2.capacity():" + sb2.capacity());
System.out.println("------------------------------");
// 方式3
StringBuffer sb3 = new StringBuffer("hello");
System.out.println("sb3:" + sb3);
System.out.println("sb3.length():" + sb3.length());
System.out.println("sb3.capacity():" + sb3.capacity());
System.currentTimeMillis() ;
}
}
StringBuffer常用方法
/*
* 添加功能
* public StringBuffer append(int i):在末尾追加元素
* public StringBuffer insert(int index,int i):在指定位置添加元素
* 删除功能:
* StringBuffer deleteCharAt(int index):删除指定位置字符
* StringBuffer delete(int start, int end):删除指定开始位置和结束位置间的字符
* 替换功能
* StringBuffer replace(int start, int end, String str)
* 把开始到结束位置的字符用一个新的字符串给替换。
* 截取功能
* String substring(int start):从指定位置到末尾截取
* String substring(int start, int end): 从指定位置到结束位置截取
* 截取一般是包左不包右。
* 反转
* StringBuffer reverse():字符串反转
*/
StringBuffer测试案例
/*
* 需求:键盘录入一个字符串,请把字符串的数据反转后输出。
*
* 举例:
* 输入:abc
* 结果:cba
*
* 方式1:
* A:把字符串变成字符数组
* B:数组倒着打
* 方式2:
* 想使用StringBuffer的reverse()方法。
* A:String -- StringBuffer 构造方法
* B:StringBuffer -- reverse()
* C:StringBuffer -- String 构造方法,toString()
*/
StringBuffer测试案例代码测试
public class StringBufferTest {
public static void main(String[] args) {
// 方式1
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入字符串:");
// String line = sc.nextLine();
// char[] chs = line.toCharArray();
// for (int x = chs.length - 1; x >= 0; x--) {
// System.out.print(chs[x]);
// }
// 方式2
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String line = sc.nextLine();
StringBuffer sb = new StringBuffer(line);
// 下面也可以
// StringBuffer sb = new StringBuffer();
// sb.append(line);
sb.reverse();
String result = new String(sb);
// 下面这个也可以
// String result = sb.toString();
System.out.println(result);
// 链式编程
// String result2 = new StringBuffer(line).reverse().toString();
// System.out.println(result2);
}
}