Проект Javatalks.ru закрывается в конце Апреля 2021 года

Мы рекомендуем следующие сайты для вопросов по языку Java:


Поиск ранга по убыванию

 
 
 
Сообщения:1
Добрый день. Имеется .csv файл. 1 колонка содержит имя, 2 - пол (М - мужчины, F - женщины), 3 - количество человек.
Задача в следующем: необходимо определить ранг указанного в тесте человека. 1 ранг присваивается наибольшему количеству человек (в файле имя Noah будет иметь первый ранг), соответственно чем меньше количество человек, тем больше ранг. Если количество человек повторяется в нескольких строках подряд, то ранг увеличивается.

В тесте указан Mason, выводимый результат должен быть равен 4, по итогу выполнения моего решения результат равен 3. Одно дело, если бы цифры были отсортированы по убыванию, то моё решение было бы рабочим. Но нужно найти решение в данном примере. Прошу помощи в дописании метода по возможности. Буду очень благодарен.

public int getRank (int year, String name, String gender) {
        FileResource fr = new FileResource("us_babynames_test/yob" + year + "short.csv");
        CSVParser parser = fr.getCSVParser(false);
        int rank = 1;
        for (CSVRecord rec : parser) {
            if (rec.get(1).equals(gender)) {
                if (rec.get(0).equals(name)) {
                    return rank;
                }
                rank++;
            }
        }
        return -1;
    }
public void testGetRank () {
        int year = 2013;
        String name = "Mason";
        String gender = "M";
        System.out.println("rank of the name in the file for the given gender: " + getRank (year, name, gender));


Содержимое файла yob2013short.csv :
Sophia,F,10
Emma,F,8
Olivia,F,8
Isabella,F,7
Ava,F,6
Liam,M,9
Jacob,M,8
Mason,M,8
William,M,7
Noah,M,12
 
 
Сообщения:838
triangleproject:
rank++;

У Вас увеличение ранга происходит только если пол совпадает. Это почему?
Что за цифры в третей колонке CSV?

Общий совет: постройте по файлу модель по которой будет просто получать результат, просчитайте ранг для всех. например введя сущность Person(name, gender) и построив Map<Person, Rank>

Ещё есть ощущение что у Вас код взят из другого похожего задания, потому-что вообще не бьётся с текстом. Если так дайте лучше оригинал задания
Изменен:22 мар 2021 19:40
 
Модераторы:alon4iknazicaTaky_
Сейчас эту тему просматривают:Нет