Возникли проблемы с некоторыми методами проверки - PullRequest
0 голосов
/ 03 ноября 2019

У меня небольшая проблема с этим домашним заданием на пару вещей

Сначала они хотят, чтобы я создал метод, который проверяет, является ли свойство type одним из трех типов: гора , fixie , кросс . Как мне это сделать?

Во-вторых, они хотят, чтобы я создал метод, который исправляет строку модель , если содержит специальные символы. Я создал метод private boolean isValidModel (модель String) , чтобы проверить это, но не уверен, что мой метод исправления верен.

Наконец, как мне создать несколько экземпляров велосипеда? класс как упомянуто ниже?

Для справки вопрос ниже.

Любая помощь будет принята с благодарностью

Напишите класс с именем Bike, который имеет три частных свойства: модель,тип, год - предоставить геттеры и сеттеры для свойств. Не допускайте хранения недействительных данных в свойствах - год должен быть положительным числом, модель должна содержать только буквы, цифры и пробелы, а тип должен быть одним из следующих: гора, фикс, кросс-кантри. Предоставьте частные методы для проверки модели и используйте ее при изменении модели, а также предоставьте метод для удаления любых недопустимых символов из модели, чтобы вы могли сохранить новую строку в свойстве модели.

private boolean isValidModel (модель String) private String fixModel (модель String) // вернет модель с удаленными недопустимыми символами

Также предоставьте публичный метод отображения, который отображает информацию о велосипеде: public void display () Напишите основную программу для создания нескольких экземпляров класса Bike, попробуйте установить недопустимые данные в свойствах и вызывайте 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 Ответ

0 голосов
/ 03 ноября 2019

Вы можете проверить, является ли модель действительной, используя разные методы, я решил использовать RegEx. Если вы все еще хотите использовать свое решение, вы должны изменить символ '&&' (AND) на '||'(ИЛИ) символ.

Класс велосипеда:

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
}

Надеюсь, вы найдете этот ответ полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...