-1
public class raceCar{
    private String driver;
    private String car;

    public raceCar(String driver, String car){
        this.driver = driver;
        this.car = car;
    }
}

我需要在构造函数中传入两个字符串,但构造函数需要检查该字符串是否为 0 到 99 之间的数字,如果不是,则将其设置为“00”。

4

3 回答 3

3

要测试,请使用正则表达式:

if (str.matches("[1-9]?\\d")) {
    // it's a number between 0 and 99
}

这通过使用正则表达式来检查字符串来工作。表达式的部分是:

  • [1-9]?1 到 9 范围内的单个字符,由?
  • \d任何数字

正则表达式可能是\d\d,但那将允许“00”。

仅供参考,在 java 中,仅当整个String.matches()字符串与模式匹配时才返回 true ,因此不需要 ^ 和 $。这与许多其他为部分匹配返回 true 的语言不同。

于 2013-10-22T00:00:50.870 回答
2

您可以将字符串转换为intusing Integer.parseInt(),然后使用 if 语句检查其是否大于 -1 且小于 100。

于 2013-10-21T23:59:32.710 回答
0
public class raceCar
{
    private String driver;
    private String car;

    public raceCar(String driver, String car)
    {
        if (Integer.parseInt(driver) < 100 && Integer.parseInt(driver) >= 0)
            this.driver = driver;
        else
            this.driver = "00";

        if (Integer.parseInt(car) < 100 && Integer.parseInt(car) >= 0)
            this.car = car;
        else
            this.car = "00";
    }
于 2013-10-22T00:14:02.570 回答