按照之前的方法,字符串的拼接相当耗时,看着就头疼,那么有什么办法让字符串的拼接更加简便吗? ----> StringBuilder
StringBuilder概述
public StringBuilder append(任意类型) 添加数据,并返回对象本身
public StringBuilder reverse() 反转容器中的对象
public int length() 返回长度(字符出现的个数)
public String toString() 通过toString()就可以实现把StringBuilder转换为String
public class heimaString {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder("abc");
//添加元素
sb.append(1);
sb.append(true);
sb.append(2);
//反转
sb.reverse();
//获取长度
int len = sb.length();
System.out.println(len);
//因为StringBuilder是java已经写好的类,java在底层对它已经做了一些处理
//打印对象不是地址值而是属性值
System.out.println(sb);
//再把StringBuilder变回字符串
String str = sb.toString();
System.out.println(str);
}
}
这里给大家说一下链式编程吧话不多说上才艺
public class StringBuilderDemo1 {
public static void main(String[] args) {
//链式编程
//当我们在调用一个方法的时候,不需要用变量接受他的结果,
// 可以继续调用其他的方法,这样cur的方法将依赖上一个方法的结果
int len = getString().substring(1).replace("A","Q").length();
System.out.println(len);
}
public static String getString(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
return str;
}
}
回文数
刷算法总会遇到回文数吧,一个一个的遍历吗?
public class StringBuilderDemo1 {
public static void main(String[] args) {
//1.键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
//反转键盘录入的字符串
String result = new StringBuilder().append(str).reverse().toString();
//比较
if(str.equals(result)){
System.out.println("当前字符串是对称字符串");
}else{
System.out.println("当前字符串不是对称字符串");
}
}
}
public class StringBuilderDemo1 {
public static void main(String[] args) {
//1.定义数组
int[] arr = {1,2,3};
//2.调用方法把数组变成字符串
String str = arrToString(arr);
System.out.println(str);
}
public static String arrToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i = 0; i<arr.length;i++){
if(i == arr.length - 1){
sb.append(arr[i]);
}else{
sb.append(arr[i]).append(",");
}
}
sb.append("]");
return sb.toString();
}
}