Java JOptionPane输入到int
我试图让JOptionPane获取输入并将其分配给int,但变量类型出现了一些问题 我正在尝试这样的事情:Java JOptionPane输入到int,java,swing,user-input,int,joptionpane,Java,Swing,User Input,Int,Joptionpane,我试图让JOptionPane获取输入并将其分配给int,但变量类型出现了一些问题 我正在尝试这样的事情: Int ans = (Integer) JOptionPane.showInputDialog(frame, "Text", JOptionPane.INFORMATION_MESSAGE, null, null, "[sample text to help input]
Int ans = (Integer) JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]");
但我得到了:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot
be cast to java.lang.Integer
这听起来合乎逻辑,但我想不出另一种方法来实现这一点
提前感谢只需使用:
int ans = Integer.parseInt( JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]"));
您不能将
字符串
强制转换为int
,但可以使用Integer.parseInt(String)
将其转换,这是因为用户插入到作业窗格
中的输入是字符串
,并以字符串
的形式存储和返回
Java本身无法在字符串和数字之间转换,您必须使用特定的函数,只需使用:
int ans = Integer.parseInt(JOptionPane.showInputDialog(...))
请注意,如果传递的字符串不包含可解析字符串,Integer.parseInt将引发NumberFormatException。
//使用JOptionPane进行添加的示例代码
// sample code for addition using JOptionPane
import javax.swing.JOptionPane;
public class Addition {
public static void main(String[] args) {
String firstNumber = JOptionPane.showInputDialog("Input <First Integer>");
String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>");
int num1 = Integer.parseInt(firstNumber);
int num2 = Integer.parseInt(secondNumber);
int sum = num1 + num2;
JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sum of two Integers", JOptionPane.PLAIN_MESSAGE);
}
}
导入javax.swing.JOptionPane;
公共类添加{
公共静态void main(字符串[]args){
String firstNumber=JOptionPane.showInputDialog(“输入”);
String secondNumber=JOptionPane.showInputDialog(“输入”);
int num1=Integer.parseInt(firstNumber);
int num2=Integer.parseInt(第二个数字);
整数和=num1+num2;
showMessageDialog(null,“和为”+Sum,“两个整数之和”,JOptionPane.PLAIN_消息);
}
}
现在,您的Int\u firstnumber
包含String\u firstnumber
的整数值
希望能有所帮助嗯。。。似乎我还需要添加int ans=Integer.parseInt(JOptionPane.showInputDialog(frame,“Text”,JOptionPane.INFORMATION_MESSAGE,null,null,“[帮助输入的示例文本]”))。toString()@如果使用正确的
showinputdialog
格式,则无需执行此操作。但是,在某些情况下你是对的。我明白了,我明白了。如果我可以再问一件事,有没有一种方法,使用一个循环,来检查给定的输入是否是一个整数?像。。。在ans=integer之前是否执行{ans=JOptionPane.showInputDialog(…)}?
String String_firstNumber = JOptionPane.showInputDialog("Input Semisecond");
int Int_firstNumber = Integer.parseInt(firstNumber);