/*
如果对字符串进行拼接操作,每次拼接都会构成一个String对象;既耗时又浪费空间,而这种操作还
不可避免,通过java提供的StringBuilder类来解决这个问题。
StringBuilder概述:StringBuilder是一个可变的字符串类,我们可以把它看成一个容器
这里的可变指的是StringBuilder对象的内容是可变的。
String和StringBuilder的区别
String:内容是不可变的
StringBuilder:内容是可变的。
*/
package myproject;

public class build {
public static void main(String[] args) {
String s="hello";//在栈内存中存在String类的对象s假设一个地址为001 ,在堆内存地址所存内容为hello
s+="world";//在堆内存常量"world"指向地址为002,拼接后完成的s("helloworld")所指的内存中地址为003、
System.out.println(s);
}
}

package myproject;

public class sb1 {
public static void main(String[] args) {
StringBuilder s1=new StringBuilder();
StringBuilder s2=s1.append("rensaihang");
System.out.println(s1==s2);
/*s1.append("hello");
s1.append("world");*/
s1.append("hello").append("world");//链式编程与上面相同。
System.out.println("s1:"+s1);
s1.reverse();
System.out.println("s1:"+s1);
}
}

/*
StringBuilder和String相互转化
(1)StringBuilder转换位String
public String toString():通过toString()就可以实现把StringBuilder
转换为String
(2)String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder


*/
package myproject;

public class sb2 {
public static void main(String[] args) {
//将StringBuilder转换为String
/*StringBuilder s1=new StringBuilder();
s1.append("hello").append("world");
System.out.println("s1:"+s1);
String s2=s1.toString();
System.out.println("s2:"+s2);*/
//将String转换为StringBuilder
/*String s1="helloworld";
StringBuilder s2=new StringBuilder(s1);
System.out.println(s2);
System.out.println(s1);*/
}
}

/*
StringBuilder和String相互转化
(1)StringBuilder转换位String
public String toString():通过toString()就可以实现把StringBuilder
转换为String
(2)String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder


*/

package myproject;

public class sb3 {
public static void main(String[] args) {
//定义一个静态数组
int []arr= {1,2,3,4,5,6,7,8,9};
//调用一个方法,用一个变量接受结果
String s3=pz(arr);
//输出结果
System.out.println(s3);
}
//定义一个方法,返回值为String,参数为int[]arr
public static String pz(int[]a) {
StringBuilder s1=new StringBuilder();
s1.append("{");
for(int i=0;i<a.length;i++) {
if(i==a.length-1) {
s1.append(a[i]).append("}");
}else {
s1.append(a[i]).append(",");
}
}
String s2=s1.toString();
return s2;
}
}

package myproject;
import java.util.Scanner;
public class sb4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s=sc.nextLine();
//调用方法并定义一个变量接受结果
String s2=fanzhuan(s);
System.out.println(s2);
}
//定义一个方法。参数为一个字符串,返回值类型为String
public static String fanzhuan(String s) {
return new StringBuilder(s).reverse().toString();
}
}