肯定的微笑
准备,往前出发
1. String 和 StringBuffer 的相互转换
/*
String 转换至 StringBuffer
方式一
通过构造方法
方式二
通过 append() 到空字符缓冲区
StringBuffer 转换至 String
方式一
通过构造方法
方式二
通过 toString() 转换
*/
// String 转换至 StringBuffer
String s = "fgh";
StringBuffer s1 = new StringBuffer(s);
StringBuffer s2 = new StringBuffer().append(s);
System.out.println(s1);
System.out.println(s2);
// StringBuffer 转换至 String
StringBuffer sb = new StringBuffer("韭菜盒子");
String sb1 = new String(sb);
String sb2 = sb.toString();
System.out.println(sb1);
System.out.println(sb2);
2. 把数组拼接成一个字符串(用StringBuffer实现)
/*
需求:把数组拼接成一个字符串(用StringBuffer实现)
利用 append()
*/
char[] c = {'a','b','c','d'};
StringBuffer sb = new StringBuffer();
for (char element:c) {
sb.append(element);
}
System.out.println(sb);
3. 把字符串反转,键盘录入字符串
/*
需求:把字符串反转,键盘录入字符串
*/
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
String s = sc.next();
StringBuffer sb = new StringBuffer(s);
String s1 = sb.reverse().toString();
System.out.println(s1);
4. 判断回文
/*
回文:字符串正序和逆序后,内容相同,成为回文
*/
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
String s = sc.next();
//方式一
char c[] = s.toCharArray();
int head = 0;
int tail = c.length - 1;
boolean flag = true;
for(; head <= tail; head++,tail--){
if(c[head] != c[tail]){
System.out.println("不是回文");
flag = false;
break;
}
}
if(flag)
System.out.println("是回文");
//方式二
StringBuffer sb = new StringBuffer();
String s1 = sb.append(s).reverse().toString();
//String 和 StringBuffer 不能做equals()比较
//StringBuffer 没有重写 equals() 方法
if(s.equals(s1)){
System.out.println("是回文");
}else{
System.out.println("不是回文");
}
}
此处 flag 用于判断在循环被 break 时,是否触发输出最后一个 sout
对于此处的单方法,一可将 break 改为 return ,从而舍弃 flag 判断
String 和 StringBuffer 不能做equals()比较
因为 StringBuffer 没有重写 equals() 方法,仍然取的堆内存地址