根据用户输入创建元素的子列表
create a sub list of elements based on user input
我写了下面的代码,从初始化的国家列表中,该方法将 return 所有经度 >= 5 的国家,代码有效,但现在我希望该方法 return在经度5度范围内靠近字符串D的国家名称。
我尝试如下所示实施扫描器,但我仍然得到经度高于 5 的国家/地区。如何根据用户输入使方法 return 成为国家/地区名称。
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);
更正您的 if 语句。
您正在写...
if (!CountriesDistance.contains(country.CountryName.equals(D)) && country.getLongitude() >= 5)
“country.CountryName.equals(D)”部分 returns 判断对错。因此,您正在检查 CountriesDistance 是否不包含 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;
}
}
我写了下面的代码,从初始化的国家列表中,该方法将 return 所有经度 >= 5 的国家,代码有效,但现在我希望该方法 return在经度5度范围内靠近字符串D的国家名称。
我尝试如下所示实施扫描器,但我仍然得到经度高于 5 的国家/地区。如何根据用户输入使方法 return 成为国家/地区名称。
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);
更正您的 if 语句。
您正在写...
if (!CountriesDistance.contains(country.CountryName.equals(D)) && country.getLongitude() >= 5)
“country.CountryName.equals(D)”部分 returns 判断对错。因此,您正在检查 CountriesDistance 是否不包含 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;
}
}