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