因此,为了检查数字是否是回文,我将其转换为字符串。我知道在SO上有一个类似的问题,但我已经检查了解决方案,所以任何帮助都将不胜感激。
为什么我会得到"Exception in thread "main" java.lang.NumberFormatException:
?
我的代码在这里;
/*
(Palindrome integer) Write the methods with the following headers
// Return the reversal of an integer, i.e., reverse(456) returns 654
public static int reverse(int number)
// Return true if number is a palindrome
public static boolean isPalindrome(int number)
Use the reverse method to implement isPalindrome. A number is a palindrome
if its reversal is the same as itself. Write a test program that prompts the
user to enter an integer and reports whether the integer is a palindrome.
*/
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("Please enter a number");
Scanner input = new Scanner(System.in);
int number = input.nextInt();
if (isPalindrome(number))
System.out.println("The number is a palindrome");
else
System.out.println("The number is not a palindrome");
}
public static int reverse(int number) {
String reverse = "";
String n = number + " ";
for (int i = n.length() - 1; i >= 0; i--) {
reverse += n.charAt(i);
}
return Integer.parseInt(reverse);
}
public static boolean isPalindrome(int number) {
return number == reverse(number) ? true : false;
}
}
答案 0 :(得分:2)
问题在于反向功能。
实际上,指令String n = number + " ";
是值number
与空字符串的串联。这不是一个数字,后来在指令return Integer.parseInt(reverse);
处给出了NomberFormatException。您应该使用String n = Integer.toString(number);
以下是已审核的方法
public static int reverse(int number) {
String reverse = "";
String n = Integer.toString(number); // + " ";
System.out.println(reverse);
for (int i = n.length() - 1; i >= 0; i--) {
reverse += n.charAt(i);
}
return Integer.parseInt(reverse);
}
答案 1 :(得分:0)
您应该更改以下行:
String n = Integer.toString(number);
以下内容:
mysqli_connect($dbserver, $username, $password, $dbname);
因为您尝试使用空格作为 int 的最后一个字符来解析 String ,所以它会抛出 NumberFormatException