1、把数组拼接成一个字符串(用StringBuffer实现)
public class StringBufferTest1 {
public static void main(String[] args) {
char[] chars = {'a','b','c','d'};
//创建一个空的StringBuffer对象
StringBuffer sb = new StringBuffer();
//遍历数组得到每一个字符
for(int i=0;i<chars.length;i++){
sb.append(chars[i]);
}
//将字符缓冲区转换一个字符串
String s = sb.toString();
System.out.println(s);
}
}
2、把字符串反转 (键盘录入字符串) "qwerdf" --> "fdrewq"
import java.util.Scanner;
public class StringBufferTest2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String stringLine = sc.next();
//方式1:使用String的拼接方式
String s = "";
//将字符串转换成字符数组
char[] chars = stringLine.toCharArray();
//倒着遍历字符数组
for (int i = chars.length - 1; i >= 0; i--) {
s += chars[i];
}
System.out.println(stringLine + "反转之后的结果为:" + s);
System.out.println("========================================");
//方式2:StringBuffer中有一个reverse()方法实现
//将输入的String类型的数据转换成StringBuffer类型
StringBuffer sb = new StringBuffer(stringLine);
sb.reverse();
//将StringBuffer类型转换回去String类型
String s1 = sb.toString();
System.out.println(stringLine + "反转之后的结果为:" + s1);
System.out.println("=====================链式编程改进:=====================");
System.out.println(new StringBuffer(stringLine).reverse().toString());
}
}
判断一个字符串是否是对称字符串 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串 分析: 1、第1个字符与最后一个字符去比较 2、第2个字符与倒数第2个字符去比较 3、第3个字符与倒数第3个字符去比较 4、... 比较的次数: length()/2
import java.util.Scanner;
public class StringBufferTest3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入要判断的字符串:");
String stringLine = sc.next();
//方式1:一个一个的去比较
//将输入的字符串转化成字符数组
boolean flag = true;
char[] chars = stringLine.toCharArray();
for (int start = 0, end = chars.length - 1; start <= end; start++, end--) {
if (chars[start] != chars[end]) {
System.out.println("该字符串不是对称字符串");
flag = false;
break;
}
}
if(flag){
System.out.println("该字符串是对称字符串");
}
System.out.println("=========================================================");
//方式2:利用StringBuffer中反转方法,如果反转之前与反转之后的字符串是一样的,说明是对称字符串
//将输入的String类型的数据转化成StringBuffer类型的数据
StringBuffer sb = new StringBuffer(stringLine);
sb.reverse();
//再将反转后的StringBuffer类型的数据转换成String类型的数据
String s = sb.toString();
if(s!=null){
if(s.equals(stringLine)){
System.out.println("该字符串是对称字符串");
}else {
System.out.println("该字符串不是对称字符串");
}
}
}
}