有人可以帮忙吗?
测试给定数字是否为十六进制的程序?该号码必须由用户输入。如果不是十六进制,则必须抛出异常。异常必须是用户定义的。
使用Integer.parseInt(string, 16)
.
NumberFormatException
如果string
无法以 base-16 解析,则会抛出。如果您想要一个用户定义的异常,则捕获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);
}
包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 的一本书中所说的。
有人可以帮助我理解这个问题。我认为我做得对,因为你们可以看到上面的程序,但我自己的例外。