① 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));
}
}