您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在编程中,判断一个整数是否是回文数是一个常见的问题。回文数是指正序和倒序读都相同的数。例如,121 是一个回文数,而 123 不是。本文将介绍如何在 Java 中判断一个整数是否是回文数,并提供几种不同的实现方法。
最简单的方法是将整数转换为字符串,然后比较字符串与其反转后的字符串是否相等。以下是实现代码:
public class PalindromeNumber {
public static boolean isPalindrome(int x) {
String str = Integer.toString(x);
String reversedStr = new StringBuilder(str).reverse().toString();
return str.equals(reversedStr);
}
public static void main(String[] args) {
int num = 121;
if (isPalindrome(num)) {
System.out.println(num + " 是回文数");
} else {
System.out.println(num + " 不是回文数");
}
}
}
x
转换为字符串 str
。StringBuilder
的 reverse()
方法反转字符串。另一种方法是通过数学运算反转整数的一半,然后比较反转后的部分与原数的另一半是否相等。以下是实现代码:
public class PalindromeNumber {
public static boolean isPalindrome(int x) {
// 特殊情况处理
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int reversedHalf = 0;
while (x > reversedHalf) {
reversedHalf = reversedHalf * 10 + x % 10;
x /= 10;
}
// 当数字长度为奇数时,去掉中间的数字
return x == reversedHalf || x == reversedHalf / 10;
}
public static void main(String[] args) {
int num = 121;
if (isPalindrome(num)) {
System.out.println(num + " 是回文数");
} else {
System.out.println(num + " 不是回文数");
}
}
}
x
是负数或者以 0 结尾且不为 0,则 x
不是回文数。x
的最后一位数字依次添加到 reversedHalf
中,同时将 x
除以 10。x
的长度为奇数,去掉中间的数字后再比较。还可以使用栈来判断一个整数是否是回文数。将整数的每一位数字压入栈中,然后依次弹出并与原数的每一位进行比较。以下是实现代码:
import java.util.Stack;
public class PalindromeNumber {
public static boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
String str = Integer.toString(x);
Stack<Character> stack = new Stack<>();
for (char c : str.toCharArray()) {
stack.push(c);
}
for (char c : str.toCharArray()) {
if (c != stack.pop()) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int num = 121;
if (isPalindrome(num)) {
System.out.println(num + " 是回文数");
} else {
System.out.println(num + " 不是回文数");
}
}
}
x
转换为字符串 str
。本文介绍了三种在 Java 中判断一个整数是否是回文数的方法。每种方法都有其优缺点,选择哪种方法取决于具体的应用场景和性能要求。对于大多数情况,方法二(反转整数的一半)是最优的选择,因为它既高效又不占用额外的空间。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。