Java利用String特性判断回文数

版权申诉
0 下载量 90 浏览量 更新于2024-08-11 收藏 1KB TXT 举报
该资源包含了两个Java代码示例,用于判断一个整数是否为回文数,即该数字从前往后读和从后往前读是否相同。这两个代码都是通过将输入的整数转换为字符串来实现的,然后比较原字符串与反转后的字符串是否相等。 第一个Java代码实例: ```java import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int d = scan.nextInt(); String s = String.valueOf(d); int n = s.length(); String s1 = ""; int i, j, flag = 0; for (i = 0, j = n - 1; i < n && j >= 0; i++, j--) { s1 += s.charAt(j); } System.out.println(n); // 输出字符串长度,实际判断回文数时可以去掉这行 if (s.equals(s1)) { System.out.println("Y"); } else { System.out.println("N"); } scan.close(); } } ``` 这个代码首先使用`Scanner`从控制台获取输入的整数,然后将其转换为字符串`s`。接下来,通过`for`循环从后向前遍历字符串,构建反转后的字符串`s1`。最后,比较`s`和`s1`,如果它们相等,则输出"Y"表示是回文数,否则输出"N"。 第二个Java代码实例: ```java import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); String s = String.valueOf(N); String s1; StringBuffer sb = new StringBuffer(s); s1 = new String(sb.reverse().toString()); System.out.println(s.length()); // 输出字符串长度,实际判断回文数时可以去掉这行 if (s.equals(s1)) { System.out.println("Y"); } else { System.out.println("N"); } scan.close(); } } ``` 这个代码与第一个实例相似,但使用了`StringBuffer`类的`reverse()`方法来更高效地反转字符串。`StringBuffer`类是线程安全的,其`reverse()`方法会直接修改原对象,避免了创建新字符串带来的额外开销。因此,这种方法在处理大量数据时更高效。 总结来说,这两个Java程序的核心知识点包括: 1. Scanner类:用于从标准输入(如键盘)读取数据。 2. String类:用于表示和操作字符串,提供了多种字符串操作方法,如`valueOf()`用于将基本类型转换为字符串。 3. StringBuffer类:线程安全的字符串操作类,提供了`reverse()`方法来反转字符串。 4. 字符串比较:使用`equals()`方法比较两个字符串是否相等,注意这与`==`不同,`equals()`比较的是内容,`==`比较的是对象引用。 5. 字符数组访问:通过`charAt()`方法访问字符串中的特定字符。 6. 循环结构:`for`循环用于遍历字符串并构建反转字符串。 7. 条件判断:`if...else`结构用于判断字符串是否为回文数。 这两个代码片段都可以有效检测输入的整数是否为回文数,但第二个实例使用`StringBuffer`的方法更为高效。在实际编程中,应根据需求选择合适的方法。