键盘录入一个字符串:判断字符串是否为对称字符串
1.方式一
分析:
1)定义一个功能完成 compare(String str)—返回值 boolean
1.1) 获取字符串长度 str.length()
1.2) 创建一个字符数组:动态初始化 char[] charArray = new char[str.length()] ;
1.3)遍历字符串 ---->通过获取功能: str.charAt(角标);获取到每一字符 赋值字符数组的每一个元素
1.4)遍历charArray数组
保证数组长度/2
charArray[i] != charArray[charArray.length-1-i]
就不对称
否则就对称
private static boolean compare(String line) {
//创建一个新的字符数组,动态初始化
char[] charArray = new char[line.length()] ;
//遍历line字符串,通过charAt(int index)获取每一个字符
for(int x = 0 ; x < line.length() ; x ++){
charArray[x] = line.charAt(x) ;//将字符赋值字符数组中的每一个元素
}
//遍历字符数组charArray,保证长度/2
for(int i = 0 ; i < charArray.length/2 ; i ++){
if(charArray[i] !=charArray[charArray.length-1-i]) {
return false;
}
}
return true ;
}
//测试类
public class StringTest4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个字符串:");
String line = sc.nextLine() ;
//调用功能
boolean flag = compare(line) ;
System.out.println(flag);
}
}
2.方式二
使用 -----> StringBuffer完成
public static boolean compare2(String line) {
/* //将line--->StringBuffer
StringBuffer sb = new StringBuffer(line) ;
String str = sb.reverse().toString();
return str.equals(line) ;*/
//链式编程将上面的代码简化
return new StringBuffer(line).reverse().toString().equals(line) ;
}
//测试类
public class StringTest4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
System.out.println("请您输入一个字符串:");
String line = sc.nextLine() ;
boolean flag2 = compare2(line) ;
System.out.println(flag2);
}
}