如何判断一个字串是回文?
回文是指正反排列都一样的字符串,比如"level"、"madam"。在Java中,我们可以使用多种方法来判断一个字符串是否为回文。下面我将介绍一种常用的方法,并给出相应的代码示例。
方法一:反转字符串比较
该方法的思路是将原始字符串反转,然后和原始字符串进行比较,如果相同则说明是回文。
具体代码如下:
public static boolean isPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
接下来,我们通过一个具体的问题来演示该方法的使用。
问题描述:
给定一个字符串数组,要求找出其中所有是回文的字符串。
解决方案:
- 首先,定义一个方法
checkPalindrome
来判断一个字符串是否为回文。
public static boolean checkPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
- 定义一个方法
findPalindromes
来找出所有是回文的字符串。
import java.util.ArrayList;
import java.util.List;
public class PalindromeFinder {
public static List<String> findPalindromes(String[] strings) {
List<String> palindromes = new ArrayList<>();
for (String s : strings) {
if (checkPalindrome(s)) {
palindromes.add(s);
}
}
return palindromes;
}
public static boolean checkPalindrome(String s) {
String reversed = new StringBuilder(s).reverse().toString();
return s.equals(reversed);
}
public static void main(String[] args) {
String[] strings = {"level", "madam", "hello", "world", "racecar"};
List<String> palindromes = findPalindromes(strings);
System.out.println("Palindromes:");
for (String palindrome : palindromes) {
System.out.println(palindrome);
}
}
}
- 运行上述代码,得到输出结果如下:
Palindromes:
level
madam
racecar
流程图如下:
flowchart TD
A(开始)
B(定义方法checkPalindrome)
C(定义方法findPalindromes)
D(判断字符串是否为回文)
E(添加到回文列表)
F(遍历所有字符串)
G(输出回文列表)
H(结束)
A-->B
A-->C
C-->F
F-->D
D-->E
D-->F
E-->F
C-->G
G-->H
甘特图如下:
gantt
dateFormat yyyy-MM-dd
title 回文字符串查找
section 解决方案
定义方法 :done, 2021-10-01, 1d
查找回文字符串 :done, 2021-10-02, 2d
输出回文列表 :done, 2021-10-04, 1d