-1

誰か助けてくれませんか?

指定された数値が 16 進数かどうかをテストするプログラムは? 番号はユーザーが入力する必要があります。16 進数でない場合は、例外をスローする必要があります。例外はユーザーが定義する必要があります。

4

4 に答える 4

5

を使用しInteger.parseInt(string, 16)ます。

base-16 で解析できないNumberFormatException場合にスローされます。stringユーザー定義の例外が必要な場合は、をキャッチしてNumberFormatException、独自の例外をスローします。

于 2012-05-21T13:17:51.500 に答える
4
boolean isHex = false;
try{
    new BigInteger("ffff", 16);
    isHex = true;
}
catch(NumberFormatException ex) { }

次のような独自のテキストで例外を生成できます。

throw new Exception("Some text");
于 2012-05-21T13:18:05.493 に答える
2

あるいは、

if(!text.matches("\\p{XDigit}+") {
   throw new NotHexadecimalInputException(text);
}
于 2012-05-21T13:37:47.577 に答える
0

パッケージtry_catch_review;

*私自身の例外***

public class ItisNotHexDecException extends Exception{

    public ItisNotHexDecException()
    {
        System.out.println(" it is not hexa-decimal ");
    }


}

* *メインプログラム *上記の例外はここで使用されています***

import java.io*;

public class hexadec_orNot {

    public static void main(String[] args) throws ItisNotHexDecException{

        int i;
        String s =new String();
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        System.out.println(" enter the number ");

        try{
            s=br.readLine();
            i=Integer.parseInt(s,16);
            System.out.println("entered number is hexaDecimal :   " + i);

        }  catch(NumberFormatException e)  {

            try{
            throw new ItisNotHexDecException();
            }catch(ItisNotHexDecException ee)
            {
                System.out.println("caught exception " + ee);
            }

        }  catch(Exception e)
        {
            System.out.println(" generic ");
        }
    }

}

@HI Oli - あなたの意見は価値があり、感謝しています。私がしたことは、上記のプログラムで確認できます。これはまさにあなたが私に試してほしいことだと私は信じています.

このページの冒頭で述べたように、元のクエリに追加します。数値をユーザーから受け入れ、文字列変数に割り当てる必要があることをお知らせする必要があります。この部分を実行しました。上記のプログラムで確認できます。

この質問の主な部分は、「文字列関数」を使用して処理を実行する必要があるということです。これはまさに、私がコア Java の学習に使用している本に記載されていることです。

誰かが飛び込んで、質問を理解するのを手伝ってくれませんか。私自身の例外を除いて、上記のプログラムを見ることができるので、私は正しい仕事をしたと思います。

于 2012-05-22T02:53:22.323 に答える