如何解决此java.lang.NumberFormatException?
请参阅下面我的代码: 如何解决从eclipse收到的错误如何解决此java.lang.NumberFormatException?,java,eclipse,numberformatexception,Java,Eclipse,Numberformatexception,请参阅下面我的代码: 如何解决从eclipse收到的错误 package finalExam; //this is required for JOptionPane to work import javax.swing.JOptionPane; //this allows for exception throwing import java.io.*; public class Geometry { public static void main(String[] args)
package finalExam;
//this is required for JOptionPane to work
import javax.swing.JOptionPane;
//this allows for exception throwing
import java.io.*;
public class Geometry {
public static void main(String[] args) throws IOException {
boolean valid = false;
int menuChoice;
do {
// create a menu and display it to the user
// then ask the user to choose an option
String menu = "1) Calculate the area of a circle\n"
+ "2) Calculate the area of a rectangle\n"
+ "3) Calculate the area of a triangle\n"
+ "4) Quit\n"
+ "Please enter your choice: (1, 2, 3, or 4)";
JOptionPane.showInputDialog(menu);
menuChoice = Integer.parseInt(menu);
if(menuChoice == 1)
{
String unknownRadius = JOptionPane.showInputDialog("What is the radius of the circle?");
double knownRadius = Double.parseDouble(unknownRadius);
double circleArea = Math.pow(knownRadius, 2) * 3.14159;
JOptionPane.showMessageDialog(null, "The area of the circle is " + circleArea);
valid = true;
} else if(menuChoice == 2){
String unknownLength = JOptionPane.showInputDialog("What is the length of the rectangle?");
double knownLength = Double.parseDouble(unknownLength);
String unknownWidth = JOptionPane.showInputDialog("What is the width of the rectangle?");
double knownWidth = Double.parseDouble(unknownWidth);
double rectangleArea = knownLength * knownWidth;
JOptionPane.showMessageDialog(null, "The area of the rectangle is " + rectangleArea);
valid = true;
} else if(menuChoice == 3){
String unknownBase = JOptionPane.showInputDialog("What is the base length of the triangle?");
double knownBase = Double.parseDouble(unknownBase);
String unknownHeight = JOptionPane.showInputDialog("What is the height of the triangle?");
double knownHeight = Double.parseDouble(unknownHeight);
double triangleArea = (knownBase / 2) * knownHeight;
JOptionPane.showMessageDialog(null, "The area of the triangle is " + triangleArea);
valid = true;
}else if(menuChoice == 4){
System.exit(0);
}else if(menuChoice > 0)
JOptionPane.showMessageDialog(null, "Please enter positive numbers only!");
}
while(!valid || menuChoice != 4);
}
}
这就是错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1) Calculate the area of a circle
2) Calculate the area of a rectangle
3) Calculate the area of a triangle
4) Quit
Please enter your choice: (1, 2, 3, or 4)"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at finalExam.Geometry.main(Geometry.java:25)
我相信你想做的是:
// create a menu and display it to the user
// then ask the user to choose an option
String menu = "1) Calculate the area of a circle\n"
+ "2) Calculate the area of a rectangle\n"
+ "3) Calculate the area of a triangle\n"
+ "4) Quit\n"
+ "Please enter your choice: (1, 2, 3, or 4)";
/*JOptionPane#showInputDialog returns a string of the input, so that is what you want to parse*/
/*also you may want to add a try catch to prevent crashes, should the user not input a valid integer*/
menuChoice = Integer.parseInt(JOptionPane.showInputDialog(menu));
if(menuChoice == 1)
{
您最初所做的是尝试解析菜单文本中的整数[1)计算面积…]无法捕获字符串中的选项响应:
String choice = JOptionPane.showInputDialog(menu);
menuChoice = Integer.parseInt(choice);
或者直接解析它:
menuChoice = Integer.parseInt(JOptionPane.showInputDialog(menu));
您试图将
菜单
解析为整数?你期望它如何工作?我认为你必须学习一些关于Java和Swing的基础知识。这是一个