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

在某些验证方法上遇到困难

谷梁嘉运
2023-03-14

如有任何帮助将不胜感激

编写一个名为Bike的类,它有三个私有属性:model、type、year--为这些属性提供getter和setter。不允许在属性中存储无效数据-年份应为正数,型号应仅包含字母、数字和空格,类型应为以下类型之一:山地、斐济、越野。提供私有方法来验证模型并在更改模型时使用它,还提供方法从模型中删除任何无效字符,以便将新字符串保存到模型属性中。

私有boolean isValidModel(String model)私有String fixModel(String model)//将返回删除无效字符的模型

还提供public方法display,它显示有关自行车的信息:public void display()编写一个主程序来创建自行车类的几个实例,尝试将无效数据设置为属性,并在每次更改后调用display。

public class Bike
{

// Instance field
private String model;
private String type;
private int year;





public Bike(String model, String type, int year )
{
     model = unknown;
     type = unknown;
     year = unknown;
}

//getters
public String getModel()
{
     return model;
}

public String getType()
{
     return type;
}


public int getYear()
{
     return year;
}

//setters
public void setModel( String model )
{

     model = N/A;
}

public void setType( String type )
{

     type = N/A;
}

public void setYear( int year )
{
  if(year < 1970)
     year = 1970;
}










private boolean isValidModel(String model){

int len = model.length();
      for (int i = 0; i < len; i++) {

         if ((Character.isLetterOrDigit(model.charAt(i)) == false) && model.charAt(i)!=' ') {
            return false;
         }
      }
      return true;

}


private String fixModel(String model){


model= model.replaceAll("[^A-Za-z0-9]","");



}






public void display(){

System.out.println("Year: "+year+" Model: "+model+"Type: "+type);


}

共有1个答案

秦权
2023-03-14

您可以使用不同的方法检查模型是否有效,我确实选择了使用regex。如果仍要使用解决方案,则必须将'&&'(AND)符号更改为''(OR)符号。

自行车类:

public class Bike {

    private String model;
    private String type;
    private int year;


    private boolean isValidModel(String model) {
        // Making a pattern that checks for the requirements
        Pattern pattern = Pattern.compile("[ A-Za-z0-9]*");
        return pattern.matcher(model).matches();
    }

    private String fixModel(String model) {
        // Replacing all the bad characters
        return model.replaceAll("[^ A-Za-z0-9]", "");
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        // Check if the Model is valid
        if (this.isValidModel(model))
            this.model = model; // If so store the model
        else
            this.model = this.fixModel(model); // Store the fixed model
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        // Check if the type contains one of the hard coded types
        if (type.equals("mountain") || type.equals("fixie") || type.equals("cross-country"))
            this.type = type;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        if (year > 0) // Check if the year is positive
            this.year = year;
    }

    public void display() {
        // Displaying the stored information
        System.out.println("Year:" + year + " Model:" + model + " Type:" + type);
    }
}

主要方法:

public static void main(String[] args) {
    Bike bike1 = new Bike(); // Creating the first Bike instance
    bike1.setModel("This Is Valid"); // Valid model
    bike1.setYear(10); // Valid year
    bike1.setType("cross-country"); // Valid type

    Bike bike2 = new Bike(); // Creating the second Bike instance
    bike2.setModel("This-Is-Invalid"); // Invalid model
    bike2.setYear(-1); // Invalid year
    bike2.setType("Invalid Type"); // Invalid type

    bike1.display(); // Expected Year:10 Model:This Is Valid Type:cross-country
    bike2.display(); // Expected Year:0 Model:ThisIsInvalid Type:null
}
 类似资料:
  • 我正试着按照这里的入门说明: http://fabric8.io/guide/getstarted/gofabric8.html

  • 根据文档,我需要重新验证用户谁试图删除他们的帐户,但没有登录一段时间。下面是文档(非常底部): 文件编制 如果执行其中一个操作,而用户登录时间太长,则操作失败并出现错误。当发生这种情况时,通过从用户获取新的登录凭据并将凭据传递给reauthenticateWithCredential来重新验证用户 请帮忙。

  • 问题内容: 我正在使用Express框架使用Node.js编写一个小型Web应用程序。我正在使用csrf中间件,但是我想对某些请求禁用它。这就是我在应用程序中添加它的方式: 我想设置没有csrf控件的POST路由。 问题答案: 有几种可能的方法。您基本上需要了解最简单和最正确的规则,以便决定是否使用csrf中间件。如果您大部分时间都希望使用csrf,除了一小部分请求模式白名单,请遵循此答案中我关于

  • 我是Python的初学者,我正试图学习如何使用数据结构,如JSON对象,但我在试图从JSON对象中实际获取数据时遇到了困难。 我可以通过已经有的代码打印文件中的数据,但是我只想打印某个值,比如的值。我如何使用我已经有的代码打印这个?

  • 有人能帮我解决这个编码蝙蝠的问题吗,我很接近,但我不明白我做错了什么。我试着用不同的方法重新编写我的代码,并研究了解决方案。如果有人能解释这个问题,那就太好了。我对编码和Java非常陌生,所以如果解决方案是显而易见的,我很抱歉。这就是问题所在。

  • 我正在使用以下方法来验证表格所有页面中的某些表格数据。我已经尝试了所有的可能性,任何人都可以分享您对此的看法。 下面的代码是我的页面, this . check application = function(text){ return element . all(by . CSS containing text(" # application-auth-list-2 tbody tr TD:fir