字符串反转:
键盘录入一个字符串,在控制台输出反转后的结果。例如:"abc"------>"cba"
package Demo;
import java.util.Scanner;
public class stringDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String s = sc.nextLine();
System.out.println(resver(s));
}
public static String resver(String s) {
String s1 = "";
for (int i = s.length()-1 ;i>=0;i--){
s1 += s.charAt(i);
}
return s1;
}
}
StringBuilder:
对字符串拼接,每次拼接,都构建一个新的String对象,即耗时,又浪费内存空间。通过StringBuilder类来解决这个问题。
StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的是Stringbuilder对象的内容是可变的
String:内容不可变
StringBuilder:内容是可变的
StringBuilder构造方法
public StringBuilder() 创建一个空白可变的字符串对象,不含任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
package Demo2;
public class stringDemo3 {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
System.out.println("sc:"+sc);
System.out.println("sb.length:"+sc.length());
StringBuilder sc1 = new StringBuilder("helloworld");
System.out.println("sc:"+sc1);
System.out.println("sb.length:"+sc1.length());
}
}
StringBuilder的添加和反转:
public StringBuilder append() 添加数据,并返回对象本身
public StringBuilder reverse() 返回相反的字符序列
package Demo2;
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
StringBuilder sc1 = sc.append("hello");
System.out.println("sc:"+sc);
System.out.println("sc1:"+sc1);
sc.append("java");
sc.append("100");
System.out.println("sc:"+sc);
System.out.println("sc1:"+sc1);
sc.reverse();
System.out.println("sc:"+sc);
System.out.println("sc1:"+sc1);
}
}
StringBuilder和String相互转换:
1、StringBuilder转换String
通过toString()就可以实现把StringBuilder转换为String
public String toString():
2、String转换为StringBuilder
通过构造方法可以实现把String转换为StringBuilder
public StringBuilder(String s):
package Demo2;
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sc = new StringBuilder();
sc.append("hello");
// String s1 = sb; //错误的方式
String s = sc.toString(); //正确的方式
System.out.println(s);
// StringBuilder sb = s; //错误的方式
StringBuilder sb = new StringBuilder(s);//正确的方式
System.out.println(sb);
}
}
加强版字符串拼接:
package Demo2;
public class StringBuilderDemo2 {
public static void main(String[] args) {
int[] arr = {1,5,7};
StringBuilder sc = new StringBuilder();
sc.append("[");
for(int i = 0;i<arr.length;i++){
if(i!= arr.length-1){
sc.append(arr[i]+",");
}
else{
sc.append(arr[i]);
}
}
sc.append("]");
System.out.println(sc);
}
}
加强版字符串反转:
package Demo2;
import java.util.Scanner;
public class StringBuilderDemo3 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入一个字符串");
String s = sc.nextLine();
String s1 = Myreverse(s);
System.out.println(s1);
}
public static String Myreverse(String s){
/*
StringBuilder s1 = new StringBuilder(s);
s1.reverse();
String s2 = s1.toString();
return s2;
*/
return new StringBuilder(s).reverse().toString();
}
}