java – 验证String是否为十六进制
发布时间:2020-05-24 09:28:30 所属栏目:Java 来源:互联网
导读:我有一个像“09a”的字符串,我需要一个方法来确认文本是否为十六进制.我发布的代码类似,它验证字符串是十进制数.我想做同样的,但是对于十六进制. 非常非常感谢你! private static boolean isNumeric(String cadena) { try { Long.parseLong(cadena); return
|
我有一个像“09a”的字符串,我需要一个方法来确认文本是否为十六进制.我发布的代码类似,它验证字符串是十进制数.我想做同样的,但是对于十六进制. 非常非常感谢你! private static boolean isNumeric(String cadena) {
try {
Long.parseLong(cadena);
return true;
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Uno de los números,excede su capacidad.");
return false;
}
}
解决方法有一个重载的Long.parseLong接受第二个参数,指定基数:
Long.parseLong(cadena,16); 或者,您可以遍历字符串中的字符,并对其调用 private static boolean isNumeric(String cadena) {
if ( cadena.length() == 0 ||
(cadena.charAt(0) != '-' && Character.digit(cadena.charAt(0),16) == -1))
return false;
if ( cadena.length() == 1 && cadena.charAt(0) == '-' )
return false;
for ( int i = 1 ; i < cadena.length() ; i++ )
if ( Character.digit(cadena.charAt(i),16) == -1 )
return false;
return true;
}
BTW,我建议分开“测试一个有效的数字”和“向用户显示一个消息”的关注,这就是为什么我只是在上面的例子中返回false,而不是先通知用户. 最后,您可以使用正则表达式: cadena.matches("-?[0-9a-fA-F]+"); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
