I'm trying to make a condition in the method clothing that if temperature is < 10 then advise particular clothes but I'm getting the following error:
The operator < is undefined for the argument type(s) String, int.
So how can I use this greater than >
and less than <
in the clothing method below?
import java.util.Random;
import net.aksingh.owmjapis.api.APIException;
import net.aksingh.owmjapis.core.OWM;
import net.aksingh.owmjapis.model.CurrentWeather;
public class Weather {
Weather Tweather = new Weather();
// method to test the API key
public static String owmKey() {
return "api-key"; // api key
}
static CurrentWeather cwd;
String[] highTemp = { "Shirt", "T-shirt", "Jacket", "Raincoat" };
String[] midTemp = { "sweater", "thermal-shirt" };
String[] lowTemp = { "Trousers", "Jeans", "Shorts" };
public static Boolean getCity(String city) {
/*
* Description: This method returns the name of the city.
*
* @param city: value of to be validated.
*
* @return : return the back the name of the city if valid.
*/
// declaring object of "OWM" class
OWM owm = new OWM(owmKey());
// getting current weather data for the selected city
try {
cwd = owm.currentWeatherByCityName(city);
if (cwd.hasCityId()) {
// we then return the city name
return true;
}
} catch (APIException e) {
// returns if city doesn't exist on the OWM API
return false;
}
return null; // else return null
}
public String temp() {
return "The temperature of are: Max-" + (cwd.getMainData().getTempMax() - 273.15) + " / Min - "
+ (cwd.getMainData().getTempMin() - 273.15) + "\'Celsius";
}
public String clothing() {
Random clothings = new Random();
int high = clothings.nextInt(highTemp.length - 1);
int mid = clothings.nextInt(midTemp.length - 1);
int low = clothings.nextInt(lowTemp.length - 1);
if( Tweather.temp() < 10 ) {
return "Adviesd Clothings By CTZ: " + highTemp[high];
}
return "Adviesd Clothings By CTZ: " + highTemp[high] + " and " + midTemp[mid] + " and " + lowTemp[low];
// return "Adviesd Clothings By CTZ: "+ highTemp[high] +" and " + midTemp[mid] +
// " and " + lowTemp[low];
}
}
In the line if( Tweather.temp() < 10 )
, Tweather.temp()
returns a String
. I would add another method that returns the actual minimum temperature as a double
. Maybe something like this:
public double getMinTemp() {
return cwd.getMainData().getTempMin() - 273.15;
}
Then use that method for your comparison.