【问题标题】:create a sub list of elements based on user input根据用户输入创建元素的子列表
【发布时间】:2021-12-13 01:29:46
【问题描述】:

我编写了下面的代码,该方法将从初始化的国家列表中返回所有经度 >= 5 的国家,该代码有效,但现在我希望该方法返回接近的国家的名称到经度 5 度范围内的字符串 D。

我尝试实现如下所示的扫描仪,但我仍然得到经度高于 5 的国家/地区。如何使该方法根据用户输入返回国家/地区名称。

ArrayList<String> CountriesDistance= new ArrayList<>(); 
Scanner scanner= new Scanner(System.in);
System.out.print("Enter The Name of a Country: ");  
String D= scanner.nextLine(); 
for(Country country : Countries)
    if (!CountriesDistance.contains(country.CountryName.equals(D)) && country.getLongitude() >= 5)
        CountriesDistance.add(country.CountryName); 
    System.out.println(CountriesDistance);

【问题讨论】:

    标签: java sorting arraylist java.util.scanner


    【解决方案1】:

    更正你的 if 语句。

    你正在写下面...

    if (!CountriesDistance.contains(country.CountryName.equals(D)) && country.getLongitude() >= 5)
    

    “country.CountryName.equals(D)”部分返回真或假。因此,您正在检查 CountryDistance 是否不包含 true/false 以及该国家/地区的经度是否大于或等于 5。

    我猜你说:

    if(!CountriesDistance.contains(inputCountryAsString) && (country.getLongitude() <= baseCountry.getLongitude() + 5 && country.getLongitude() >= baseCountry.getLongitude() - 5))
    

    我这样初始化 baseCountry:

    Country baseCountry = getCountryByName(countries, inputCountry);
    public static Country getCountryByName(Countries countries, String name) {
        Country country = null;
        for (Country c : Countries) {
            if (c.getName().equals(name))
                country = c;
        }
        return country;
    }
    

    在这种情况下,我通过调用 getName() 来获得国家/地区的名称,我是这样实现的:

    class Country {
    
        String countryName;
    
        public String getName() {
            return countryName;
        }
    }
    

    【讨论】:

    • 我做到了,唯一剩下的就是如何使该方法返回经度高于用户输入的字符串 D 的国家/地区列表
    • 那么,国家现在打印正确了吗?
    • 其实它现在只返回String D给我,它不返回任何其他国家
    • 好吧,也许我现在明白你的问题了。删除 if 语句中的“country.CountryName.equals(D) &&”部分。 (我在答案中更正了。)
    • 我做到了
    猜你喜欢
    • 2021-08-20
    • 2022-01-20
    • 2020-04-29
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 2019-02-17
    • 2015-08-14
    • 2021-01-12
    相关资源
    最近更新 更多