java判斷迴文的兩種方法
阿新 • • 發佈:2019-01-04
第一種:面向過程:
從字串Str.length()/2開始向兩端移動進行對比 ,boolean用來確定一個返回值判斷是否迴文
Scanner input = new Scanner(System.in); try{ System.out.println("Enter a three-digit interger:"); String integer = input.next(); int i = integer.length()/2-1;//從字串中間往左 int j = integer.length()/2+1;//從字串中間往右 boolean c = true;//預設為真 for(;i >= 0 || j < integer.length();i--,j++){//遍歷整個字串判斷是否為迴文 if(integer.charAt(i) != integer.charAt(j)) c = false; else c = true; } if(c == false) System.out.println(integer+" is not a palindrome"); else System.out.println(integer+" is a palindrome"); }finally{ input.close(); }
第二種:面向物件:
使用StringBuffer定義一個物件integerBuffer,對integerBuffer進行反轉賦值給普通String型別 string,將兩者進行對比
需要注意的是,StringBuffer和String不是同一種類型,不能直接進行對比或者是強制轉換。
Scanner input = new Scanner(System.in); try{ System.out.println("Enter a three-digit interger:"); String string ; StringBuffer integerBuffer1 = new StringBuffer(input.next()); string = integerBuffer1.toString();//將輸入物件轉換為String型別的字串,賦值給string if(string.equals(integerBuffer1.reverse().toString())){//判斷string是否和反轉後的字串相同 System.out.println(string+" is a palindrome"); } else{ System.out.println(string+" is not a palindrome"); } }finally{ input.close(); }