Java 检查文本字段是否为空
好的,那么,我所拥有的,应该是一个简单的掷骰子机。两个文本字段,一个表示要滚动的模具数量,另一个表示总数量。(好的,每个单独的骰子滚动三分之一,但这不是重点)只要骰子文本字段的数量不是空的,这就行了。当字段为空时,我只得到一个Java 检查文本字段是否为空,java,javafx,input,textfield,Java,Javafx,Input,Textfield,好的,那么,我所拥有的,应该是一个简单的掷骰子机。两个文本字段,一个表示要滚动的模具数量,另一个表示总数量。(好的,每个单独的骰子滚动三分之一,但这不是重点)只要骰子文本字段的数量不是空的,这就行了。当字段为空时,我只得到一个NumberFormatException int d4_num; try { d4_num = Integer.parseInt(d4_text.getText()); } catch (NumberFormatException e) { d4_num
NumberFormatException
int d4_num;
try {
d4_num = Integer.parseInt(d4_text.getText());
} catch (NumberFormatException e) {
d4_num = 0;
}
我的代码:
Button d4 = new Button("d4 ");
d4.setLayoutX(240);
d4.setLayoutY(90);
d4.addEventHandler(ActionEvent.ACTION, new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
tooltip.setText("");
int d4_num = Integer.parseInt(d4_text.getText()); //d4_text is for the number of die
d4_num = d4_num + 1;
int sum = 0;
for (int i = 1; i < d4_num; i++){
int result = 1 + (int)(Math.random() *4);
sum = sum += result;
tooltip.appendText((String.valueOf("d4_" + i + " =" + result + "\n")));
}
d4_result.setText(String.valueOf(sum));
}
});
按钮d4=新按钮(“d4”);
d4.设置布局X(240);
d4.设置布局(90);
d4.addEventHandler(ActionEvent.ACTION,new EventHandler()){
@凌驾
公共无效句柄(ActionEvent ActionEvent){
工具提示。setText(“”);
int d4_num=Integer.parseInt(d4_text.getText());//d4_text表示模具的数量
d4_num=d4_num+1;
整数和=0;
对于(int i=1;i
我尝试过用不同的方法检查
d4_text
的值,每种方法都会给出一个错误,因为我无法检查null、字符串或其他任何内容。要安全地检查“字段是否包含整数值”,可以执行以下操作:
final String fieldValue = d4_text.getText();
if (fieldValue != null && fieldValue.matches("\\d+")) {
int d4_num = Integer.parseInt(fieldValue);
... the rest of your logic that relies on having a correct d4_num value
} else {
... output some error message like 'please enter a few digits'
}
这里检查字段是否包含非空字符串,该字符串仅由数字组成,至少由一个数字组成
用户仍有可能打破此限制,输入一个对int
来说太长的数字;您还可以对字段值长度添加一些合理的限制:
if (fieldValue != null && fieldValue.matches("\\d{2}")) {
在这里,只接受正好由2位数字组成的数字。您可以捕获该异常,并在出现
NumberFormatException时将其设置为零。
int d4_num;
try {
d4_num = Integer.parseInt(d4_text.getText());
} catch (NumberFormatException e) {
d4_num = 0;
}
在传递整数值之前,请尝试此操作
if (d4_text.getText() == null || d4_text.getText().trim().isEmpty()) {
// your code here }
我试着用不同的方法检查d4_文本的值,每种方法都是如此
由于无法检查null或字符串而给出错误,或
不管怎样
首先:检查字段是否不为null
(注意,默认情况下,Java FX输入文本字段不为null,但复杂的客户端代码可能会更改它)且不为空(通过修剪空格)第二:检查它是否是一个数字或捕获异常 使用
整数
而不是int
有助于确定提交的值是否为整数
<接受null
值的code>Integer可能会传递失败的输入,但必须使用数值进行赋值的int
则不能传递失败的输入。Integer d4_num = null;
String textToConvertToInt = d4_text.getText();
if (textToConvertToInt != null && !textToConvertToInt.trim().equals("")){
try{
d4_num = Integer.parseInt(textToConvertToInt);
}
catch (NumberFormatException e){
// handle the exception
}
}
您还可以使用来执行此操作:
String textToConvertToInt = d4_text.getText();
Integer d4_num = null;
if (NumberUtils.isNumber(textToConvertToInt)){
d4_num = Integer.parseInt(textToConvertToInt );
}
嘿,谢谢你!基本上就是我想做的,但我不知道怎么做。