El uso de subseries de obtener números enteros y un carácter de una cadena en Java?

kieron Powell:

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.

Tom Chumley:

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");

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=313206&siteId=1
Recomendado
Clasificación