在Java中测试给定的数字是否为十六进制?

在Java中测试给定的数字是否为十六进制?,java,exception,hex,Java,Exception,Hex,有人能帮忙吗 测试给定数字是否为十六进制的程序?号码必须由用户输入。如果不是十六进制,则必须抛出异常。异常必须是用户定义的 使用Integer.parseInt(字符串,16) 如果无法在base-16中解析string,它将抛出NumberFormatException。如果需要用户定义的异常,请捕获NumberFormatException,并抛出自己的异常 boolean isHex = false; try{ new BigInteger("ffff", 16); isH

有人能帮忙吗

测试给定数字是否为十六进制的程序?号码必须由用户输入。如果不是十六进制,则必须抛出异常。异常必须是用户定义的

使用
Integer.parseInt(字符串,16)

如果无法在base-16中解析
string
,它将抛出
NumberFormatException
。如果需要用户定义的异常,请捕获
NumberFormatException
,并抛出自己的异常

boolean isHex = false;
try{
    new BigInteger("ffff", 16);
    isHex = true;
}
catch(NumberFormatException ex) { }
您可以使用自己的文本生成异常,如下所示:

throw new Exception("Some text");
或者

if(!text.matches("\\p{XDigit}+") {
   throw new NotHexadecimalInputException(text);
}

包尝试、捕获、审查

*我自己的例外***

public class ItisNotHexDecException extends Exception{

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


}

**主程序*此处使用了上述例外情况***

@嗨,奥利-你的投入是值得的,我为此感谢你。我所做的你可以在上面的节目中看到。我相信这正是你想要我尝试的

添加到我的原始查询中,如本页开头所述;我需要告诉你们,一个数字必须被用户接受并分配给一个字符串变量——我做了这部分,你们可以在上面的程序中看到

这个问题的主要部分是必须使用“字符串函数”来执行处理。这正是我用来学习核心java的一本书中所说的


有人能插嘴帮我理解这个问题吗。我认为我做得很好,因为你们可以看到上面的程序,但我自己例外。

@OliCharlesworth,这有关系吗?问题只是问如何确定它是否是十六进制。“123”是十六进制,问题已解决。:)知道数字是否为十六进制的标准是什么?“167”在十进制和十六进制中都是完全有效的。听起来像是家庭作业,老实说是个愚蠢的问题。10是十六进制。它也有八进制、十进制和二进制。那么,它是十六进制还是非十六进制?应该抛出异常吗?程序将如何知道用户的想法?一个恶毒的老师,还有很多不及格的方法…;-)我希望OP应该自己编写代码,而不是依靠库方法来完成所有的工作。@juergen--我从未见过或读过关于BigInteger的文章。你能给我一些关于BigInteger的信息和学习BigInteger的正确链接吗?@MKod:请参阅和
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 ");
        }
    }

}