① java判斷輸入一段字元串是不是迴文
importjava.util.Scanner;
publicclassA{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("請輸入一個字元串:");
Stringstr=scanner.next();
booleanisloop=isLoop(str);
if(isloop){
System.out.println(str+"是迴文字元");
}else{
System.out.println(str+"不是迴文字元");
}
}
publicstaticbooleanisLoop(Stringstr){
for(inti=0,j=str.length()-1;i<str.length()/2;i++,j--){
if(str.charAt(i)!=str.charAt(j)){
returnfalse;
}
}
returntrue;
}
}
② Java 判斷迴文字元串有多少和其中的最大字元
二、代碼部分
1、全局變數
1 static String hws = "";
2 static int num = 0;
3 static String[] hw;
2、創建數組用於保存迴文
復制代碼
1 /**
2 * 創建數組保存所有的迴文
3 *
4 * @return 返回一個String類型的數組
5 */
6 public static String[] createHw() {
7 return new String[num];
8 }
復制代碼
3、將hws字元串更改為空字元
1 /**
2 * 將hws字元串更改為空字元
3 */
4 public static void hwsClose() {
5 hws = "";
6 }
4、判斷該字元串中存在的迴文的數量
復制代碼
1 /**
2 * 判斷該字元串中存在的迴文的數量
3 *
4 * @param c
5 * 數組c ,c是用戶輸入的字元串轉換為單個字元組成的數組
6 * @return
7 */
8
9 public static int judgeNumber(char[] c) {
10 for (int i = 0; i < c.length - 1; i++) {
11 if (c[i] == c[i + 1]) {
12 num++;
13 }
14 }
15 return num;
16 }
復制代碼
5、第一次判斷字元串中前後的數是否存在相同
復制代碼
1 /**
2 * 第一次判斷字元串中前後的數是否存在相同
3 *
4 * @param c
5 * 數組c ,c是用戶輸入的字元串轉換為單個字元組成的數組
6 */
7
8 public static void judge(char[] c) {
9 judgeNumber(c);
10 if (num != 0) {
11 hw = createHw();
12 for (int i = 0; i < c.length - 1; i++) {
13 if (c[i] == c[i + 1]) {
14 hws = hws + c[i];
15 judge2(c, i, i + 1);
16 hw[--num] = hws;
17 hwsClose();
18 }
19 }
20 } else {
21 System.out.println("該字元串沒有迴文");
22 }
23 }
復制代碼
6、進行二次判斷以當前相同的字元為起點,分別以前下標向前和該後下標向後進行比較()
復制代碼
1 /**
2 * 進行二次判斷以當前相同的字元為起點,分別以前下標向前和該後下標向後進行比較()
3 *
4 * @param c
5 * 數組c ,c是用戶輸入的字元串轉換為單個字元組成的數組
6 * @param i
7 * 數組前一個下標,該下標和後一個進行比較並且相同
8 * @param k
9 * 數組後一個下標,該下標和前一個進行比較並且相同
10 */
11
12 public static void judge2(char[] c, int i, int k) {
13 if (i - 1 >= 0 && k + 1 < c.length) {
14 if (c[i - 1] == c[k + 1]) {
15 hws = hws + c[i - 1];
16 judge2(c, i - 1, k + 1);
17 }
18 }
19 }
復制代碼
7、輸出所得的迴文
復制代碼
1 /**
2 * 獲取所得的迴文
3 *
4 * @param c
5 * 數組c ,c是用戶輸入的字元串轉換為單個字元組成的數組
6 */
7
8 public static void outPalindrome(char[] c) {
9 judge(c);
10 if (hw!=null) {
11 for (int i = 0; i < hw.length; i++) {
12 System.out.println(reverse(hw[i])+hw[i]);
13 }
14 } else {
15 System.out.println("沒有迴文2");
16 }
17 }
復制代碼
8、將最長的迴文輸出
復制代碼
1 /**
2 * 將最長的迴文輸出
3 *
4 */
5
6 public static void longestPalindromes() {
7 String longest = null;
8 if (hw!=null) {
9 if (hw.length == 1) {
10 System.out.println(reverse(hw[0])+hw[0]);
11 } else {
12 for (int i = 0; i < hw.length - 1; i++) {
13 for (int j = 0; j < hw.length - 1 - i; j++) {
14 if (hw[j].length() > hw[j + 1].length()) {
15 longest = hw[j + 1];
16 hw[j + 1] = hw[j];
17 hw[j] = longest;
18 }
19 }
20 }
21 for (int i = 0; i < hw.length - 1; i++) {
22 if (hw[hw.length - 1].length() == hw[hw.length - i - 1].length()) {
23 System.out.println(reverse(hw[hw.length - i - 1])+hw[hw.length - i - 1]);
24 }
25 }
26 }
27 } else {
28 System.out.println("沒有迴文3");
29 }
30 }
③ java程序。字元串判斷是否為「迴文」
方法改為
static boolean isPalindrome(String str) {//判斷字元串是否為「迴文」
StringBuffer buf = new StringBuffer(str).reverse();
return buf.toString().equals(str);
}
④ java編程判斷是否迴文
看你的要求真麻煩
給你一個簡單的不行聯系我
import java.util.Scanner;
public class test{
public static void main(String []dafd){
int num=(new Scanner(System.in)).nextInt();
String s=num.toString();
boolean b=true;
for(int i=0;i<s.length/2;i++){
if(s.charAt(i)!=s.charAt(s.length-i-1)){
b=false;
break;
}
}
System.out.pirntln(num+(b?"是":"不是")+"迴文數");
}
}
⑤ 【java】編寫程序,要求判斷從鍵盤輸入的字元串是否為迴文
對於迴文這個問題,我們一般的解決方法是用遞歸
package com.axjy.yzn;
public class Recursive {
public static void main(String[] args) {
System.out.println("Is abcba a Palindrome?"+isPalindrome("abcdcba"));
}
public static boolean isPalindrome(String s){
if(s.length()<=1){
return true;
}else if(s.charAt(0) != s.charAt(s.length()-1)){
return false;
}
return isPalindrome(s.substring(1,s.length()-1));
}
}