java中的数字比较
这可能是一个非常愚蠢的问题。我试图反转输入的数字并进行比较。如果它们是相同的,那么输出应该是“输入的数字是回文”,但是,对于每个数字,我都会像回文一样输出java中的数字比较,java,Java,这可能是一个非常愚蠢的问题。我试图反转输入的数字并进行比较。如果它们是相同的,那么输出应该是“输入的数字是回文”,但是,对于每个数字,我都会像回文一样输出 package com.practise.examples; import java.util.Scanner; public class Practise { public static void main(String[] args) { Scanner s=new Scanner(System.in);
package com.practise.examples;
import java.util.Scanner;
public class Practise
{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("enter the number to reverse it:\n");
int num=s.nextInt();
int revNum=0;
while(num!=0)
{
revNum=revNum *10;
revNum= revNum+ num%10;
num=num/10;
}
System.out.println("the reverse of the number is: " +revNum);
if(revNum==num)
{
System.out.println("the number is a palindrome" );
}
else
{
System.out.println("the number entered is not a palindrome");
}
}
}
更简单的方法:
String num=Integer.toString(s.nextInt());
String revNum = new StringBuffer(num).reverse().toString();
System.out.println("the reverse of the number is: " +revNum);
if(revNum.equals(num))
System.out.println("the number is a palindrome" );
else
System.out.println("the number entered is not a palindrome");
如果你坚持你的方法:
Scanner s=new Scanner(System.in);
System.out.println("enter the number to reverse it:\n");
int num=s.nextInt();
int original = num;
int revNum=0;
while(num!=0)
{
revNum=revNum *10;
revNum= revNum+ num%10;
num=num/10;
}
System.out.println("the reverse of the number is: " +revNum);
if(revNum==original)
{
System.out.println("the number is a palindrome" );
}
else
{
System.out.println("the number entered is not a palindrome");
}
}
更简单的方法:
String num=Integer.toString(s.nextInt());
String revNum = new StringBuffer(num).reverse().toString();
System.out.println("the reverse of the number is: " +revNum);
if(revNum.equals(num))
System.out.println("the number is a palindrome" );
else
System.out.println("the number entered is not a palindrome");
如果你坚持你的方法:
Scanner s=new Scanner(System.in);
System.out.println("enter the number to reverse it:\n");
int num=s.nextInt();
int original = num;
int revNum=0;
while(num!=0)
{
revNum=revNum *10;
revNum= revNum+ num%10;
num=num/10;
}
System.out.println("the reverse of the number is: " +revNum);
if(revNum==original)
{
System.out.println("the number is a palindrome" );
}
else
{
System.out.println("the number entered is not a palindrome");
}
}
您已经修改了num以获得相反的结果,然后使用相同的num进行比较。使用临时变量。您已经修改了num以获得相反的结果,然后使用相同的num进行比较。使用临时变量。尝试以下方法:
public static int reverse(int num)
{
try
{
return Integer.parseInt(new StringBuilder(String.valueOf(num)).reverse().toString());
}
catch (Exception ex)
{
// Should not happen...
}
}
试着这样做:
public static int reverse(int num)
{
try
{
return Integer.parseInt(new StringBuilder(String.valueOf(num)).reverse().toString());
}
catch (Exception ex)
{
// Should not happen...
}
}
您的想法似乎只适用于非常特定的实例,而代码本身。。。好吧,我给你一个不同的想法 创建堆栈和队列 获取原始输入,并将每个连续项添加到堆栈和队列的每个元素中 一旦队列和堆栈已满
iterate until length=0
if stack.pop != queue.dequeue
palindrome=false
您的想法似乎只适用于非常特定的实例,而代码本身。。。好吧,我给你一个不同的想法 创建堆栈和队列 获取原始输入,并将每个连续项添加到堆栈和队列的每个元素中 一旦队列和堆栈已满
iterate until length=0
if stack.pop != queue.dequeue
palindrome=false
你可以把你的号码转换成一个字符串,然后检查doe的回文
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("enter the number to reverse it:\n");
int num=s.nextInt();
if (isPalindrome(num+"")){
System.out.println("the number is a palindrome" );
}else{
System.out.println("the number entered is not a palindrome");
}
}
public static boolean isPalindrome(String s) {
int n = s.length();
for (int i = 0; i < (n/2); ++i) {
if (s.charAt(i) != s.charAt(n - i - 1)) {
return false;
}
}
return true;
}
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入编号以将其反转:\n”);
int num=s.nextInt();
if(isAlindrome(num+“”){
System.out.println(“数字是回文”);
}否则{
System.out.println(“输入的数字不是回文”);
}
}
公共静态布尔值isAlindrome(字符串s){
int n=s.长度();
对于(int i=0;i<(n/2);+i){
如果(s.charAt(i)!=s.charAt(n-i-1)){
返回false;
}
}
返回true;
}
}
您可以将您的号码转换为字符串,然后检查doe的回文
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("enter the number to reverse it:\n");
int num=s.nextInt();
if (isPalindrome(num+"")){
System.out.println("the number is a palindrome" );
}else{
System.out.println("the number entered is not a palindrome");
}
}
public static boolean isPalindrome(String s) {
int n = s.length();
for (int i = 0; i < (n/2); ++i) {
if (s.charAt(i) != s.charAt(n - i - 1)) {
return false;
}
}
return true;
}
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入编号以将其反转:\n”);
int num=s.nextInt();
if(isAlindrome(num+“”){
System.out.println(“数字是回文”);
}否则{
System.out.println(“输入的数字不是回文”);
}
}
公共静态布尔值isAlindrome(字符串s){
int n=s.长度();
对于(int i=0;i<(n/2);+i){
如果(s.charAt(i)!=s.charAt(n-i-1)){
返回false;
}
}
返回true;
}
}
请注意,您正在销毁num
,因此在比较revNum==num
时,您不应更改num
创建反向编号时,否则,您将丢失原始编号。如果原始编号不断更改,则很难将原始编号与反转编号进行比较。请注意,您正在销毁此处的num
,因此当您比较revNum==num
时,num==0
。创建反转编号时不应更改num
,否则,您将丢失原始编号。如果原始编号不断变化,则很难将原始编号与反向编号进行比较。