package cn.itcast_07;
import java.util.Scanner;
/*
* 判斷一個字串是否是對稱字串
* 例如"abc"不是對稱字串,"aba"、"abba"、"aaa"、"mnanm"是對稱字串
*
* 分析:
* 判斷一個字串是否是對稱的字串,我只需要把
* 第一個和最後一個比較
* 第二個和倒數第二個比較
* ...
* 比較的次數是長度除以2。
*/
public class StringBufferTest4 {
public static void main(String[] args) {
// 建立鍵盤錄入物件
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字串:");
String s = sc.nextLine();
// 方法一:一個一個的比較
boolean b = isSame(s);
System.out.println("b:" + b);
//方法二:用字串緩衝區的反轉功能
boolean b2 = isSame2(s);
System.out.println("b2:"+b2);
}
public static boolean isSame2(String s) {
//如果反轉後和反轉前是一樣的,說明是同一個
return new StringBuffer(s).reverse().toString().equals(s);
}
/* public static boolean isSame(String s) {
// 把字串轉成字元陣列
char[] chs = s.toCharArray();
for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {
if (chs[start] != chs[end]) {
return false;
}
}
return true;
}*/
public static boolean isSame(String s) {
boolean flag = true;
// 把字串轉成字元陣列
char[] chs = s.toCharArray();
for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {
if (chs[start] != chs[end]) {
flag = false;
break;
}
}
return flag;
}
}