Javaで文字列から整数や文字を取得するサブストリングを使用していますか?

キーロン・パウエル:

ユーザは、ユーザが摂氏または華氏ためにCまたはFのいずれかに続いて番号を入力し、温度を入力するように求められます。それはあなたの「水」は、固体、液体または気体であるかどうかを伝えます。このデータを使用して - プログラムは一時とでどのような単位温度が測定されていると認識して、その後です。

私は下に試してみました

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

}

私は一時ストリングに(0,4)を入れたとき、私は出力が入力されている最初の3つの数字だろうと思ったでしょう。私は1 intまたは3を入力すると、代わりに私がエラー「java.lang.StringIndexOutOfBoundsException」を取得します。

トムChumley:

それは、文字列の範囲外にある文字を探しているように見えます。代わりに硬質の)(4使用ent.lengthに文字列の長さを符号化します。

int temp = Integer.parseInt(ent.substring(0,ent.length()-1));

最後の文字がFである場合にも、摂氏に変換する式が必要な場合があります

substring(ent.length()-1).equalsIgnoreCase("F");

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=313203&siteId=1
おすすめ