如果一个字符串的反转与原字符串相同,则称该字符串为回文字符串。例如,radar
、level
等。
同样,一个数字与其反转相等,则称该数字为回文数字。例如,3553、12321 等。
要在 Java 中检查回文,我们首先反转字符串或数字,然后将反转后的字符串或数字与原始值进行比较。
示例 1:Java 程序检查回文字符串
class Main {
public static void main(String[] args) {
String str = "Radar", reverseStr = "";
int strLength = str.length();
for (int i = (strLength - 1); i >=0; --i) {
reverseStr = reverseStr + str.charAt(i);
}
if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
System.out.println(str + " is a Palindrome String.");
}
else {
System.out.println(str + " is not a Palindrome String.");
}
}
}
输出
Radar is a Palindrome String.
在上面的示例中,我们有一个存储在 str 中的字符串 "Radar"
。在这里,我们使用了
1. for 循环来反转字符串
- 循环从字符串的末尾到开头运行。
charAt()
方法用于访问字符串中的每个字符。- 字符串的每个字符以反转顺序访问并存储在 reverseStr 中。
2. if 语句来比较 str 和 reverseStr
toLowerCase()
方法将 str 和 reverseStr 都转换为小写。这是因为 Java 是区分大小写的,而 'r' 和 'R' 是两个不同的值。equals()
方法用于检查两个字符串是否相等。
示例 2:Java 程序检查回文数字
class Main {
public static void main(String[] args) {
int num = 3553, reversedNum = 0, remainder;
// store the number to originalNum
int originalNum = num;
// get the reverse of originalNum
// store it in variable
while (num != 0) {
remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}
// check if reversedNum and originalNum are equal
if (originalNum == reversedNum) {
System.out.println(originalNum + " is Palindrome.");
}
else {
System.out.println(originalNum + " is not Palindrome.");
}
}
}
输出
3553 is Palindrome.
在上面的示例中,我们有一个存储在 num 和 originalNum 变量中的数字 3553。在这里,我们使用了
- while 循环来反转 num 并将反转后的数字存储在 reversedNum 中。
- if...else 来检查 reversedNum 是否与 originalNum 相同。
另请阅读