Java-программирование. Класс и метод - PullRequest
0 голосов
/ 29 апреля 2018

Я новичок в программировании на Java, и у меня была задача в классе. Поэтому главное, что мне пришлось сделать публичный класс с именем BankAccount с этими 3: int номер, String owner, int amount.

Затем я должен был создать массив из 10 с этим классом и заполнить его (имена владельцев были Name1, Name2 и т. Д.).

Затем мне нужно было создать массив из 5 строк с 5 именами в нем (например: «Джеймс», «Джек» и т. Д.)

и затем мне пришлось «модифицировать» имена владельцев, чтобы моя программа случайным образом прикрепила одно из 5 имен к концу имен текущего владельца. Так будет, например, так: Name2Jack, Name3James и т. Д.

Я успешно все это сделал. Но тогда.

Мой учитель сказал мне создать другой метод, который определит, сколько имен у меня из 10 имен владельцев, в которых присутствует имя X.

Итак, я сделал это:

public static int Count(BankAccount[] accounts, String name){
   int number=0;
       for (i=0; i<accounts.length, i++){
          if(accounts[i].owner.contains(name)==true)
              number++;
         }
   return number;

}

По крайней мере, если я правильно помню, это было так. Или что-то подобное. И это тоже сработало.

Но тогда, мой учитель сказал, как бы я сделал это не с .contain, а с .equals? И если бы я сделал это с этим, мне понадобились бы 1 или 2 знака "="?

Я понятия не имел, что она имеет в виду, потому что я не знаю, как это сделать с помощью .equals ... потому что имена владельцев похожи, например, на Name1Jack ..

Она сказала мне, что мне понадобится 1 знак "=" вместо 2, и что я должна позаботиться об этом для следующего урока.

Не могли бы вы, ребята, сказать мне, что она имела в виду, используя этот метод ".equals" вместо .contains? Как я могу сделать это с .equals, и я не понимаю, зачем мне нужна 1 "=" знак вместо 2 вообще.

Любая помощь будет очень признательна!

1 Ответ

0 голосов
/ 29 апреля 2018

Похоже, вам нужно просто изменить эту строку:

Из:

if (accounts[i].owner.contains(name) == true)

Кому:

if (accounts[i].owner.equals(name))

Вот пример кода с обоими вариантами:

public class BankAccountDemo {

    public static void main(String[] args) {
        BankAccount[] bankAccounts = new BankAccount[5];
        bankAccounts[0] = (new BankAccount(1, "Name1James", 1000));
        bankAccounts[1] = (new BankAccount(2, "Name2Jack", 2000));
        bankAccounts[2] = (new BankAccount(3, "Name3Henry", 3000));
        bankAccounts[3] = (new BankAccount(4, "Name4Jack", 4000));
        bankAccounts[4] = (new BankAccount(5, "Name5James", 5000));

        System.out.println("Check A:");
        System.out.println(BankAccountDemo.Count(bankAccounts, "James"));
        System.out.println(BankAccountDemo.Count2(bankAccounts, "James"));

        System.out.println("Check B:");
        System.out.println(BankAccountDemo.Count(bankAccounts, "Name5James"));
        System.out.println(BankAccountDemo.Count2(bankAccounts, "Name5James"));

    }

    public static int Count(BankAccount[] accounts, String name) {
        int number = 0;
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i].owner.contains(name) == true) {
                number++;
            }
        }
        return number;
    }

    public static int Count2(BankAccount[] accounts, String name) {
        int number = 0;
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i].owner.equals(name)) {
                number++;
            }
        }
        return number;
    }
}

Выполнить вывод:

Check A:
2
0
Check B:
1
1
...