我寫了下面的代碼,從初始化的國家串列中,該方法將回傳所有經度 >= 5 的國家,該代碼有效,但現在我希望該方法回傳接近字串 D 的國家的名稱在經度 5 度范圍內。
我嘗試實作如下所示的掃描儀,但我仍然得到經度高于 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);
uj5u.com熱心網友回復:
更正您的 if 陳述句。
您正在撰寫以下...
if (!CountriesDistance.contains(country.CountryName.equals(D)) && country.getLongitude() >= 5)
“country.CountryName.equals(D)”部分回傳真或假。因此,您正在檢查國家距離是否不包含真/假以及國家的經度是否大于或等于 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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/339867.html
