package lab10_4;
/**
*
@author Administrator
*/
import java.util.Scanner;
public class Lab10_4 {
/**
@param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan=new Scanner(System.in);
System.out.print("請輸入一個字符串:");
StringBuffer s=new StringBuffer(scan.nextLine());
System.out.print("逆序後的字符串是:");
StringBuffer s1=new StringBuffer("");
for( int i=s.length()-1;i>=0;--i){
System.out.print(s.charAt(i));
s1.append(s.charAt(i));
}
s1.toString();
s.toString();
System.out.println();
System.out.print(s.equals(s1));
}
}
為什麼輸出的是false
哈哈哈哈,這道題還是考細致的。朋友,System.out.print(s.equals(s1)); 這裡的s和s1你再仔細看看是什麼類啊,雖然你s.toString();但是你s還是StringBuffer類啊
,而StringBufferl類沒有實現equals的方法,所以它用的還是Object繼承而來的equals()方法,當然是false了。
我想,你其實代碼是想寫成這樣的
String s2 = s1.toString();
String s3 = s.toString();
System.out.println();
System.out.print(s2.equals(s3));