跳到主要内容

Java 程序:检查回文数

要理解这个示例,你应该具备以下 Java 编程 主题的知识:

如果一个字符串的反向与原字符串相同,则称该字符串为回文字符串。例如,radarlevel 等。

类似地,一个数字如果与其反向相等,则称为回文数字。例如,355312321 等。

要在 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 + " 是一个回文字符串。");
}
else {
System.out.println(str + " 不是一个回文字符串。");
}
}
}

输出

Radar 是一个回文字符串。

在上面的示例中,我们有一个字符串 "Radar" 存储在 str 中。这里我们使用了:

1. for 循环来反转字符串

  • 循环从字符串的末尾运行到开头。
  • charAt() 方法 访问字符串的每个字符。
  • 字符串的每个字符以反向顺序访问并存储在 reverseStr 中。

2. if 语句来比较 str 和 reverseStr

  • toLowerCase() 方法strreverseStr 都转换为小写。这是因为 Java 区分大小写,'r''R' 是两个不同的值。
  • equals() 方法 检查两个字符串是否相等。

示例 2:Java 程序检查回文数字

class Main {
public static void main(String[] args) {

int num = 3553, reversedNum = 0, remainder;

// 将数字存储到 originalNum
int originalNum = num;

// 获取 originalNum 的反向
// 存储在变量中
while (num != 0) {
remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}

// 检查 reversedNum 和 originalNum 是否相等
if (originalNum == reversedNum) {
System.out.println(originalNum + " 是回文。");
}
else {
System.out.println(originalNum + " 不是回文。");
}
}
}

输出

3553 是回文。

在上面的示例中,我们有一个数字 3553 存储在 numoriginalNum 变量中。这里我们使用了:

  • while 循环 来反转 num 并将反转后的数字存储在 reversedNum
  • if...else 来检查 reversedNum 是否与 originalNum 相同