当前位置: 首页 > 知识库问答 >
问题:

setter方法中的输入验证[重复]

马朝斑
2023-03-14

如何使我的setter方法public void setYear(String year)检查输入是否为数字?这是为了上课练习。我只是想弄明白为什么/怎么做。我不知道为什么,但它必须是字符串年,我需要确保只能使用一个数字。

例如,我有:

public void setColour(String colour) {
    colour = colour;
}

共有2个答案

微生城
2023-03-14

我可以提出两种方法来做到这一点。
假设您需要验证的字符串是stryear并且您认为有效的所有整数值>=0。
第一个方法是强制将字符串转换为整数并捕获抛出的任何错误:

int year = -1;
try {
    year = Integer.parseInt(strYear);
} catch (NumberFormatException e) {
    e.printStackTrace();
}
boolean validYear = (year >= 0);

第二步是消除字符串中的所有非数字字符,并将结果与原始字符串进行比较。如果它们相同,则字符串仅由数字组成:

strYear = strYear.trim();
String strOnlyDigits = strYear.replaceAll("\\D", "");
boolean validYear = (!strYear.isEmpty() && strYear.equals(strOnlyDigits));
蓬威
2023-03-14
public void setYear(String year) {
       if (Integer.parseInt(year) >= 0) {
           //Do stuff here
       }
}

使用Integer.ParseInt(String s)检查String year是否可以转换为大于或等于零的整数(逻辑上,year不能为负)。如果输入不能转换为整数,它将抛出NumberFormatException。

 类似资料:
  • 在Python中进行用户输入验证的最“正确”的Pythonic方法是什么? 我一直在使用以下内容: 我想这很好,可读性也很好,但是我不禁想知道是否有一些内置函数或者我应该使用的东西。

  • 根据经验,您永远不应该信任从最终用户收到的数据, 并且应该在充分利用之前对其进行验证。 要给 model 填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们。该方法会返回一个布尔值,指明是否通过验证。若没有通过,你能通过 yii\base\Model::$errors 属性获取相应的报错信息。比如, $model = new \app\mode

  • 问题内容: 我是这个C ++世界的新手,正在尝试为数字密码编写输入验证功能。这是我到目前为止所得到的: 对于不正确的值,它工作得很好,但在有效输入时不会中断循环。知道我在这里缺少什么吗?干杯!! James Kanze脚本的ErroR: 新代码: 使用 和 验证作为字符串 感谢所有人(尤其是James Kanze)的帮助。这件事在这里很有效。 那里还有进一步改进的空间吗?干杯!! 问题答案: 这看

  • 主要内容:输入验证,应用代码,实例解析AngularJS 表单和控件可以验证输入的数据。 输入验证 在前面的几个章节中,你已经学到关于 AngularJS 表单和控件的知识。 AngularJS 表单和控件可以提供验证功能,并对用户输入的非法数据进行警告。 客户端的验证不能确保用户输入数据的安全,所以服务端的数据验证也是必须的。 应用代码 < !DOCTYPE html > < html > < script src= "http:/

  • 有人能帮我完成输入验证功能吗。我正在验证整数输入。问题是当用户输入多个整数my cin时。fail()对每个整数运行,导致我的错误显示多次。让我告诉你我的意思 这是我的代码: 因此,如果用户要输入“jjj”;我的“请只输入整数”显示三次。我只想让它显示一次。我不知道怎么做。有什么想法吗?