【发布时间】:2014-08-06 08:37:16
【问题描述】:
我正在编写代码来获取用户输入多项式的系数和指数。例如,我在控制台中输入“-3x^4+2x^3+1x^2-1x^1+8x^0”。我不断收到此错误:
Exception in thread "main"
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at polynomials.Driver.main(Driver.java:31)
但是,当我输入一个没有任何负数的多项式时(例如:“3x^4+2x^3+1x^2+1x^1+8x^0”),没有错误。我相信错误来自 Integer.parseInt(str2),但它不应该能够解析负整数吗?这对我来说毫无意义,我在其他任何地方都找不到任何东西......任何帮助都会是一个很大的帮助。谢谢大家!
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
System.out.println("Enter a polynomial: ");
String polynomial = userInput.nextLine();
String newPoly = polynomial.replace("-", "+-").trim();
String[] arr = newPoly.split("\\+");
for (int i = 0; i<arr.length; i++) {
System.out.println(arr[i]);
String str = arr[i].trim();
String[] arr2 = str.split("x");
String str2 = arr2[0];
System.out.println(str2); //prints coefficient
System.out.println(str.substring(str.indexOf('^')+1)); //prints exponent
System.out.println(Integer.parseInt(str2));
}
}
【问题讨论】:
-
您无法将表达式解析为整数。这就是错误的意思
-
没有异常意味着他正在尝试解析一个空字符串。
-
哦是的..!!我错了
-
但我认为我在任何地方都没有空字符串...
-
当多项式中没有使用负整数时,它没有任何意义
标签: java numberformatexception parseint