Se le pide al usuario que introduzca una temperatura, a continuación, el usuario introduce un número, seguido de C o F para Celsius o Fahrenheit. El programa es a continuación, para reconocer la temp y qué unidad se mide la temperatura en - con ayuda de estos datos que le dice a su si el "agua" es sólido, líquido o gaseoso.
He intentado el siguiente
public static void main(String[] args) {
Scanner myScan = new Scanner(System.in);
System.out.print("Enter THE temp: ");
String ent = myScan.next();
int temp = Integer.parseInt(ent.substring(0,4));
//char type = ent.charAt();
//System.out.println(temp);
// System.out.println(type);
if (temp >= 100) {
System.out.println("The water is gaseous");
} else if (temp < 0) {
System.out.println("The water is solid");
} else {
System.out.println("the water is liquid");
}
}
Cuando pongo el (0,4) en la subcadena temperatura, yo he pensado que la salida sería los 3 primeros números que se introducen. En su lugar aparece un error "java.lang.StringIndexOutOfBoundsException" cuando entro en 1 o 3 int.
Parece que se está buscando a un personaje que está fuera de los límites de la cadena. En lugar de codificar duro la longitud de cadena de 4 uso ent.length ().
int temp = Integer.parseInt(ent.substring(0,ent.length()-1));
También es posible que necesite una fórmula para convertir a Celsius si el último carácter es F
substring(ent.length()-1).equalsIgnoreCase("F");