从String转换为Int

时间:2015-03-09 19:18:05

标签: java int type-conversion jtextfield joptionpane

我正在尝试通过在JDialog上通过JTextField输入值来验证我的程序,如果它小于值...,否则执行...我一直遇到问题就行了:

int intDiagInput = Integer.parseInt(dialogInput)

JOptionPane.showInputDialog(dialogPaneInput, "Age verification required, please enter year of birth: yyyy");

            dialogInput = dialogPaneInput.getText(); //get info from JTextField and put in string

            int intDiagInput = Integer.parseInt(dialogInput); //convert string to int

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您的代码有两种错误: 传递给showInputDialog的第一个参数用作父项,仅用于布局目的,它与输入对话框的实际内容无关。因此,您的第二个错误是从显示的对话框中获取文本。 要获取用户输入的文本,您需要编写如下内容:

String dialogInput = JOptionPane.showInputDialog(dialogPaneInput, "Age verification required, please enter year of birth: yyyy");

int intDiagInput = Integer.parseInt(dialogInput ); //convert string to int

你正在做的是获取一些神奇物体dialogPaneInput的文本,这可能只是一个空字符串。

此外,你应该检查用户是否输入了一个有效的号码,而不是你接受的号码,但实际上它是一个数字,否则你将遇到已经存在的NumberFormatException - 或者将解析包装在try...catch - 块中。

try {
    int intDiagInput = Integer.parseInt(dialogInput );
} catch (NumberFormatException nfex) {
    System.err.println("error while trying to convert input to int.");
}

答案 1 :(得分:0)

您在评论部分发布的异常(java.lang.NumberFormatException:对于输入字符串:"")表示您正在尝试将空字符串转换为int。

更改代码以验证dialogInput在将其转换为int之前是否为空。