Java实现:判断回文数的简单算法

版权申诉
0 下载量 31 浏览量 更新于2024-08-04 收藏 984B TXT 举报
"本Java程序用于判断输入的字符串是否为回文数,即正读反读都一样的数字。" 在Java编程语言中,回文数是一个常见的编程问题,它涉及到字符串处理和逻辑判断。这个程序的核心在于检查一个数字或字符串是否无论从前向后还是从后向前读取都是相同的。以下是对给定代码的详细解释: 首先,我们导入了`java.util.Scanner`类,这是Java中用于从控制台接收用户输入的标准库。通过`Scanner`,我们可以获取用户在运行时输入的字符串。 ```java import java.util.Scanner; ``` 接下来,我们定义了一个名为`Plalindrome1`的公共类,其中包含两个方法:`DoJudge`和`main`。`DoJudge`方法用于判断字符串是否为回文,而`main`方法是程序的入口点,它将启动程序并调用`DoJudge`方法。 在`DoJudge`方法中,我们创建了一个布尔变量`flag`并将其初始化为`false`,表示默认假设输入不是回文数。接着,我们将输入的字符串转换为字符数组`number`,以便于逐个字符进行比较。`n`变量存储了字符串的长度。 ```java public boolean DoJudge(String s) { boolean flag = false; char[] number = s.toCharArray(); int n = s.length(); } ``` 然后,我们使用一个for循环,从数组的起始位置`0`开始,直到数组的中间位置`n/2`。在循环内部,我们比较当前索引`i`处的字符与倒数`i`位置的字符。如果两者相等,我们将`flag`设置为`true`,表示找到了匹配的字符对。如果找到不相等的字符,我们将`flag`设置为`false`,因为这表明字符串不是回文。 ```java for (int i = 0; i < n / 2; i++) { if (number[i] == number[(n - 1) - i]) { flag = true; } else { flag = false; } } ``` 最后,`DoJudge`方法返回`flag`的值,表示字符串是否为回文。 在`main`方法中,我们打印出提示信息,让用户输入一个字符串,然后通过`Scanner`对象`in`获取用户输入。我们创建一个`Plalindrome1`类的实例`p`,并调用其`DoJudge`方法来判断输入的字符串。根据`DoJudge`的结果,我们打印出相应的消息,告知用户输入的字符串是否为回文数。 ```java public static void main(String[] args) { System.out.println("请输入一个数字或字符串:"); Scanner in = new Scanner(System.in); String str = in.next(); Plalindrome1 p = new Plalindrome1(); if (p.DoJudge(str)) { System.out.println(str + "是回文数"); } else { System.out.println(str + "不是回文数"); } } ``` 这个程序虽然简洁,但它演示了基本的Java编程概念,如用户输入、字符串操作、条件判断以及面向对象的编程结构。对于初学者来说,这是一个很好的练习,可以加深对Java编程语言的理解。