我必须做一份工作,但我有一点我不知道结果是否好。
我告诉你这是一个纸牌游戏,我有一个卡片类的属性,即创建年份。为了不乱来,我把它作为字符串。
现在在 SET 中,我想验证我输入的字符串是数字和 4 位数字。
关于数字链我曾想过这样的事情
public void setAñoCreacion(String añoCreacion) {
if(Integer.parseInt(añoCreacion)
this.añoCreacion = añoCreacion
}
}
但它不承认我,因为它说它不能传递给 boolean 我不明白为什么它不是数字或不是。感谢你们对我的帮助。
在语句中
if (condición)
,条件必须始终是一段等效于布尔值的代码。在您的代码中,您将函数
parseInt
用于条件:该函数
parseInt
返回 int 类型的数据,这就是您收到错误的原因:if 需要一个布尔值,而您传递给它一个int。有几种方法可以解决此问题,其中之一可能是使用
StringUtils.isNumeric
.要检查年份是否有 4 位数字,我建议你使用 String 的 .length() 函数,最后代码如下所示:
要使用 isNumeric 函数,您必须添加相应的库。
您好,为了让这两件事的验证更有效,我给您举个例子:
希望对你有帮助,问候。
您可以使用正则表达式检查它:
另一方面,我建议您阅读为什么在源代码中使用或重音不好
ñ
。遵循您使用的方法的一种简单方法是转换为整数并根据值检查位数:
您还可以添加小于 10000 的附加条件,以防可能超过 4 位。
您可以按如下方式离开设置器:
并在其他地方进行检查,例如在 keyPressed 事件中,您可以简单地检查按下的键是否为数字,因此您保证获得的值是数字,然后在条件下验证该值是 4 位并发送二传手
要检查长度,您可以使用
length
String 方法。也就是说,如果我不会在片场之前进行这些检查。