编写一个Java应用程序。用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数(是,则输出“是回文数”,否则输出“不是回文数”)。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。要求:定义两个方法,一个用于获取一个整数的位数,一个用于返回一个整数是否为回文数。
方法1
package 作业1;
import java.util.Scanner;
/*
//逐个逆置然后比较
//这是没写方法的
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String n = "";
int i;
Scanner scanner = new Scanner(System.in);
n = scanner.nextLine();
StringBuffer n2 = new StringBuffer(n);
n2.reverse();//字符串逆置
int sum = 0;
for(i = 0;i < n.length();i++)//直接比较
{
if(n.charAt(i) == n2.charAt(i))
sum++;
}
System.out.println(n.length());
if(sum == n.length())
System.out.println("Y");
else
System.out.println("N");
scanner.close();
}
}
*/
//这是写方法的
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String n = "";
Scanner scanner = new Scanner(System.in);
n = scanner.nextLine();
System.out.println(GetLength(n));
JudgeHuiwen(n);
scanner.close();
}
public static int GetLength(String ss)
{
return ss.length();
}
public static boolean JudgeHuiwen(String ss)
{
StringBuffer n = new StringBuffer(ss);
n.reverse();//字符串逆置
int i,sum = 0;
for(i = 0;i < ss.length();i++)//直接比较
{
if(ss.charAt(i) == n.charAt(i))
sum++;
}
if(sum == ss.length())
{
System.out.println("是回文数");
return true;
}
else
{
System.out.println("不是回文数");
return false;
}
}
}
方法2:
方法二的话就是你把它当整数输入,之后判断回文时再把int变成string。这样就可以避免输入空格(123 321)这种错误的情况造成答案错误。
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n ;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
System.out.println(GetLength(n));
JudgeHuiwen(n);
scanner.close();
}
public static int GetLength(int ss)
{
int i = 0,j;
for(j = 0;j < ss;ss/=10)
{
if(ss > 0)
{
i++;
}
}
return i;
}
public static boolean JudgeHuiwen(int ss)
{
String a = "";
a = ss+ "";
StringBuffer n = new StringBuffer(a);
n.reverse();//字符串逆置
int i,sum = 0;
for(i = 0;i < a.length();i++)//直接比较
{
if(a.charAt(i) == n.charAt(i))
sum++;
}
if(sum == a.length())
{
System.out.println("是回文数");
return true;
}
else
{
System.out.println("不是回文数");
return false;
}
}
}