验证 String 是否为十六进制

新手上路,请多包涵

我有一个像“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;
    }
}

原文由 Axel Vazquez 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

可怕的异常滥用。永远不要这样做! (不是我说的,是 Josh Bloch 的 Effective Java)。无论如何,我建议

private static final Pattern HEXADECIMAL_PATTERN = Pattern.compile("\\p{XDigit}+");

private boolean isHexadecimal(String input) {
    final Matcher matcher = HEXADECIMAL_PATTERN.matcher(input);
    return matcher.matches();
}

原文由 Evgeniy Dorofeev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题