01_常见对象(StringBuffer类的概述)
/*
* StringBuffer: 是一个字符串缓冲区(其实就是一个容器) , 是一个可变动
* 线程安全 : 对应效率低
* String 和StringBuffer区别:
* String: 不可变
* StringBuffer: 是可变的字符序列
*/
02_常见对象(StringBuffer类的构造方法)
/* 构造方法:
* public StringBuffer(): 无参构造方法
public StringBuffer(int capacity): 指定容量的字符串缓冲区对象
public StringBuffer(String str): 指定字符串内容的字符串缓冲区对象
* 方法:
* public int capacity(): 获取容量
* public int length(): 获取长度的
*/
public class StringBufferDemo {
public static void main(String[] args) {
// public StringBuffer(): 无参构造方法
StringBuffer sb = new StringBuffer();
// 输出
System.out.println(sb.capacity());
System.out.println(sb.length());
System.out.println("------------------------------");
// public StringBuffer(int capacity):指定容量的字符串缓冲区对象
StringBuffer sb2 = new StringBuffer(23);
System.out.println(sb2.capacity());
System.out.println(sb2.length());
System.out.println("------------------------------");
// public StringBuffer(String str): 指定字符串内容的字符串缓冲区对象
StringBuffer sb3 = new StringBuffer("hello");
System.out.println(sb3.capacity());
System.out.println(sb3.length());
System.out.println(sb3);
}
}
03_常见对象(StringBuffer的添加功能)
/*
* StringBuffer和添加功能相关的方法
* public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
*/
public class StringBufferDemo {
public static void main(String[] args) {
// 创建StringBuffer对象
StringBuffer sb = new StringBuffer() ;
// public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
// StringBuffer sb2 = sb.append("hello");
sb.append("hello");
sb.append("world");
sb.append("java");
System.out.println(sb);
System.out.println("--------------------------------");
// helloworldjava
// public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
sb.insert(5, "我爱");
System.out.println(sb);
}
}
04_常见对象(StringBuffer的删除功能)
/*
* StringBuffer和删除功能的相关的方法:
* public StringBuffer deleteCharAt(int index): 删除指定位置的字符,并返回本身
public StringBuffer delete(int start,int end): 删除从指定位置开始指定位置结束的内容,并返回本身
*/
public class StringBufferDemo {
public static void main(String[] args) {
// 创建StringBuffer对象
StringBuffer sb = new StringBuffer();
// 添加元素
sb.append("hello");
sb.append("world");
sb.append("java");
// public StringBuffer deleteCharAt(int index): 删除指定位置的字符,并返回本身
// StringBuffer sb2 = sb.deleteCharAt(0);
// sb.deleteCharAt(0);
// sb.deleteCharAt(0);
// System.out.println(sb);
System.out.println("---------------------------");
// "helloworldjava"
// public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
// 包含头,不包含尾
sb.delete(0, 5);
System.out.println(sb);
}
}
05_常见对象(StringBuffer的替换和反转功能)
/**
* StringBuffer和替换相关的功能:
* public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换
* StiringBuffer和反转相关的功能:
* public StringBuffer reverse():字符串反转
*/
public class StringBufferDemo {
public static void main(String[] args) {
// 创建一个StringBuffer对象
StringBuffer sb = new StringBuffer() ;
// 添加元素
sb.append("helloworldjava");
// public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换, 返回缓冲区本身
// StringBuffer sb2 = sb.replace(0, 5, "你好");
sb.replace(0, 5, "你好");
// System.out.println(sb2);
System.out.println(sb);
System.out.println("---------------------------");
// 创建一个StringBuffer对象
StringBuffer sb3 = new StringBuffer() ;
// 添加元素
sb3.append("菲亦刘爱我");
// public StringBuffer reverse():字符串反转
// StringBuffer sb4 = sb3.reverse() ;
sb3.reverse() ;
//System.out.println(sb4);
System.out.println(sb3);
}
}
06_常见对象(StringBuffer的截取功能及注意事项)
/*
A:StringBuffer的截取功能
public String substring(int start): 从指定位置截取到末尾
public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
B:注意事项
注意:返回值类型不再是StringBuffer本身
*/
public class StringBufferDemo {
public static void main(String[] args) {
//创建字符串缓冲区对象
StringBuffer sb = new StringBuffer() ;
// 添加元素
sb.append("helloworldjava");
// public String substring(int start): 从指定位置截取到末尾
String result = sb.substring(5);
// 输出
System.out.println(sb);
System.out.println(result);
System.out.println("-----------------------------");
// public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
String result2 = sb.substring(0, 5) ;
System.out.println(result2);
}
}
07常见对象(StringBuffer和String的相互转换)
/*
* String 和 StringBuffer的相互转换
* String —– StringBuffer 转换意义: 是为了使用StringBuffer里面的功能
* a: 构造方法
* b: 通过append方法
* StringBuffer —— String 转换的意义: 我们的需要的结果很有可能是String类型的
* a: String构造方法
* b: toString()方法
*/
public class StringBufferDemo {
public static void main(String[] args) {
// 创建一个String对象
String s = "helloworldjava" ;
// a: 构造方法
// StringBuffer sb = new StringBuffer(s);
// System.out.println(sb);
// b: 通过append方法进行转换
StringBuffer sb = new StringBuffer();
sb.append(s);
System.out.println(sb);
System.out.println("------------------------------");
// 创建一个StringBuffer对象
StringBuffer sb2 = new StringBuffer("我爱你");
// a: 通过构造方法
String s2 = new String(sb2);
// 输出
System.out.println(s2);
// b: 通过toString()方法
String result = sb2.toString() ;
// 输出
System.out.println(result);
}
}
08常见对象(把数组转成字符串)
/*
* 需求:把数组中的数据按照指定个格式拼接成一个字符串
举例:
int[] arr = {1,2,3};
输出结果:
“[1, 2, 3]”
用StringBuffer的功能实现
分析:
a: 创建StringBuffer对象sb
b: 创建arr数组
c: 在sb中添加”[”
d: 遍历数组,获取每一个元素,添加到sb中
*/
public class StringBufferTest {
public static void main(String[] args) {
// 创建StringBuffer对象sb
StringBuffer sb = new StringBuffer() ;
// 创建arr数组
int[] arr = {1, 2, 3};
// 在sb中添加"["
sb.append("[ ");
// 遍历数组,获取每一个元素,添加到sb中
for(int x = 0 ; x < arr.length ; x++){
if(x == arr.length - 1 ){
sb.append(arr[x] + " ]");
}else {
sb.append(arr[x] + ", ");
}
}
// 把StringBuffer转换成String
String result = sb.toString() ;
// 输出
System.out.println(result);
}
09_常见对象(StringBuffer和StringBuilder的区别)
/*
* StringBuilder: 是一个可变的,是线程不安全,效率高 . 建议在单线程中使用StringBuilder
*
* String,StringBuffer,StringBuilder的区别
* a: String是一个不可变 , 而StringBuffer , StringBuilder是可变的
* b: StringBuffer 是线程安全,效率低
* StringBuilder是线程不安全, 效率高
*/
10_常见对象(String和StringBuffer分别作为参数传递)
/*
* java语言的参数传递问题:
* 基本数据类型的参数传递,形式参数的改变对实际参数没有影响
* 引用数据类型的参数传递,形式参数的改变对实际参数是有直接影响的
* String和StringBuffer作为参数传递的问题:
* String虽然是一个引用数据类,但是在作为参数传递的时候,是按照基本数据类型方式进行传递的
* StringBuffer是一个引用数据类型,在作为参数传递的时候,按照引用数据类型方式进行传递的
* String是一个常量,比较特殊
*/
public class StringBufferDemo {
public static void main(String[] args) {
// 创建StrigBuffer对象
StringBuffer sb = new StringBuffer() ;
sb.append("java") ;
// 调用change方法
change(sb);
// 输出
System.out.println(sb);
System.out.println("-------------------------");
// 创建两个String变量
String s1 = "hello";
String s2 = "world" ;
// 调用change方法
change(s1 , s2) ;
// 输出
System.out.println(s1);
System.out.println(s2);
}
/*
* 参数传递
*/
public static void change(String s1 , String s2){
s1 = s2 ;
s2 = s1 + s2 ;
}
/*
* 接收StringBuffer类型的参数
*/
public static void change(StringBuffer sb){
sb.append("hello");
}
}
10_常见对象(Arrays类的概述和方法使用)
/*A:Arrays类概述
针对数组进行操作的工具类。
提供了排序,查找等功能。
B:成员方法
public static String toString(int[] a)
public static void sort(int[] a)
public static int binarySearch(int[] a,int key)
*/
public class ArraysDemo {
public static void main(String[] args) {
// 定义一个数组
int[] arr = {24, 69, 80, 57, 13} ;
// public static String toString(int[] a): 把int类型的数据转换成字符串
String result = Arrays.toString(arr);
//输出
System.out.println(result);
// public static void sort(int[] a):对数组进行排序
Arrays.sort(arr) ;
// 把数组转换字符串
String result2 = Arrays.toString(arr);
// 输出
System.out.println(result2);
// [13, 24, 57, 69, 80]
// public static int binarySearch(int[] a,int key): 二分查找
int index = Arrays.binarySearch(arr, 500) ;
System.out.println(index);
}
}