有人可以帮忙吗?
测试给定数字是否为十六进制的程序?该号码必须从用户输入。如果它不是十六进制,则必须抛出异常。例外必须是用户定义的。
答案 0 :(得分:5)
使用Integer.parseInt(string, 16)
。
如果无法在base-16中解析NumberFormatException
,则会抛出string
。如果你想要一个用户定义的异常,那么抓住NumberFormatException
,然后抛出你自己的异常。
答案 1 :(得分:4)
boolean isHex = false;
try{
new BigInteger("ffff", 16);
isHex = true;
}
catch(NumberFormatException ex) { }
您可以使用自己的文本生成异常:
throw new Exception("Some text");
答案 2 :(得分:2)
可替换地,
if(!text.matches("\\p{XDigit}+") {
throw new NotHexadecimalInputException(text);
}
答案 3 :(得分: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的书中所说的。
有人可以跳进来帮我理解这个问题。我认为我做得对,因为你们可以看到上面的程序,我自己就是例外。