Java 检查字符串是否为回文的程序

编写一个Java程序来检查字符串是否是回文,并附带示例。任何文本,如果从左到右和从右到左读都完全相同,那么它就是一个回文字符串。这意味着即使执行字符串反转,文本也保持不变。例如,dad,madam,wow,radar等。

Java 使用 StringBuilder 检查字符串是否为回文的程序

在本例中,我们使用 StringBuilder 类和 reverse 函数来反转 normStr 并将其赋给 revStr。接下来,我们在If Else 语句中使用 equalsIgnoreCase()(或使用equals())来比较 normStr 和 revStr。如果为真,则 normStr 是回文字符串;否则不是。

import java.util.Scanner;

public class PalindromeString1 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter String to check Palindrome =  ");
		normStr = sc.nextLine();
		
		StringBuilder sb = new StringBuilder(normStr);
		
		String revStr = sb.reverse().toString();
		System.out.println("\nThe result of String Reverse =  " + revStr);
		
		if(normStr.equalsIgnoreCase(revStr) == true) {
			System.out.println("\nThe Given String " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given String " + normStr + " is not");
		}		
	}
}
Program to Check the String is Palindrome using StringBuilder

使用 StringBuffer 和 reverse() 函数

StringBuffer 也有一个 reverse 函数可以应用于 normStr。我们使用此函数来检查回文字符串。

import java.util.Scanner;

public class PalindromeString2 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter Text =  ");
		normStr = sc.nextLine();
		
		StringBuffer sbuff = new StringBuffer(normStr);
		
		String revStr = sbuff.reverse().toString();
		System.out.println("\nThe result of Reverse =  " + revStr);
		
		if(normStr.equalsIgnoreCase(revStr) == true) {
			System.out.println("\nThe Given " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given " + normStr + " is not");
		}		
	}
}

Java StringBuffer 输出。

Java 使用 for 循环检查字符串是否为回文的程序

在此程序中,我们使用for 循环从后向前(反序)迭代 normStr,并将其转换为 revStr。接下来,我们使用 (normStr.equalsIgnoreCase(revStr) == true) 来检查回文字符串。

import java.util.Scanner;

public class PaliStr3 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;
		int i;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter String to check =  ");
		normStr = sc.nextLine();
		
		String revStr = "";
		
		for(i = normStr.length() - 1; i >= 0; i--) {
			revStr += normStr.charAt(i);
		}
		
		System.out.println("\nThe result of Reverse =  " + revStr);
		
		if(normStr.equalsIgnoreCase(revStr) == true) {
			System.out.println("\nThe Given String " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given " + normStr + " is not");
		}		
	}
}
Program to Check Palindrome String using For Loop

在此回文字符串程序中,我们将 normStrr 转换为 StrCharArr 字符数组。接下来,我们使用 for 循环从右到左迭代 StrCharArr,将最后一个字符赋给第一个索引,依此类推。然后,我们使用equalsIgnoreCase来比较和检查回文字符串。

import java.util.Scanner;

public class PaliStr4 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;
		int i, j = 0;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter Text to check =  ");
		normStr = sc.nextLine();
		
		char[] StrCharArr = normStr.toCharArray();
		
		for(i = StrCharArr.length - 1; i >= 0; i--) {
			StrCharArr[j++] = normStr.charAt(i);
		}	
		
		String revStr = String.valueOf(StrCharArr);
		System.out.println("\nThe result of Reverse =  " + revStr);
		
		if(normStr.equalsIgnoreCase(revStr) == true) {
			System.out.println("\nThe Given String " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given " + normStr + " is not");
		}		
	}
}
Please Enter Text to check =  aaabbaaa

The result of Reverse =  aaabbaaa

The Given String aaabbaaa is a Palindrome

在此回文字符串程序中,我们将第一个字符与最后一个字符进行比较,依此类推。如果它们不相等,则标志为 1,然后使用Break 语句退出循环。如果标志值为 0,则该字符串是回文。

import java.util.Scanner;

public class PaliStr5 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;
		int i, flag = 0;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter String to check =  ");
		normStr = sc.nextLine();
		
		char[] StrCharArr = normStr.toCharArray();
		
		for(i = 0; i < StrCharArr.length; i++) {
			if(StrCharArr[i] != StrCharArr[StrCharArr.length - i -1]) {
				flag = 1;
				break;
			}
		}	
		
		if(flag == 0) {
			System.out.println("\nThe Given String " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given " + normStr + " is not");
		}		
	}
}
Please Enter String to check =  huh

The Given String huh is a Palindrome

这是回文字符串的另一个示例。我们没有使用标志,而是直接使用了字符索引和 break 语句。

import java.util.Scanner;

public class PaliStr6 {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;
		int i;

		sc= new Scanner(System.in);

		System.out.print("\nPlease Enter text =  ");
		normStr = sc.nextLine();
		
		int len = normStr.length();
		int endIndex = len - 1;
		for(i = 0; i <= endIndex; i++) {
			if(normStr.charAt(i) != normStr.charAt(endIndex)) {
				break;
			}
			endIndex--;
		}	
		
		if(i >= endIndex) {
			System.out.println("\nThe Given " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("\nThe Given " + normStr + " is not");
		}		
	}
}
Please Enter text =  hopoh

The Given hopoh is a Palindrome

Java 使用递归检查字符串是否为回文的程序

此示例中的 reverseString(normStr.substring(1)) + normStr.charAt(0) 行会递归调用函数,并更新字符。

import java.util.Scanner;
public class Example {
	private static Scanner sc;
	public static void main(String[] args) {
		String normStr;

		sc= new Scanner(System.in);

		System.out.print("Please Enter text =  ");
		normStr = sc.nextLine();
		
		String revStr = reverseString(normStr);
		System.out.println("\nThe result of Reverse =  " + revStr);
		
			
		if(normStr.equalsIgnoreCase(revStr) == true) {
			System.out.println("The Given " + normStr + " is a Palindrome");
		}
		else {
			System.out.println("The Given " + normStr + " is not");
		}		
	}
	private static String reverseString(String normStr) {
		if(normStr.isEmpty()) {
			return normStr;
		}
		return reverseString(normStr.substring(1)) + normStr.charAt(0);
	}
}
Program to Check Palindrome String using Recursion