java 怎么用正则表达式判断一个字符串是否为16进制数,且如果包含字母要转为大写

如题所述

用正则表达式判断一个字符串是否为16进制数的Java程序如下(不知道是不是你想要的)

public class AA {
 public static void main(String[] args) {
  String s="123bf";
  String regex="^[A-Fa-f0-9]+$";
  if(s.matches(regex)){
   System.out.println(s.toUpperCase()+"是16进制数");
  }else{
   System.out.println(s.toUpperCase()+"不是16进制数");
  }
 }
}

运行结果
123BF是16进制数

追问

在刚才基础上,要判断是否为4位或者7位,请问下该要怎么写呢?

追答

判断是否为4位或者7位十六进制数的Java程序如下

public class AA {
 public static void main(String[] args) {
  String s="123b123";
  String regex="^[A-Fa-f0-9]{4}|[A-Fa-f0-9]{7}$";
  if(s.matches(regex)){
   System.out.println(s.toUpperCase()+"是4位或者7位16进制数");
  }else{
   System.out.println(s.toUpperCase()+"不是4位或者7位16进制数");
  }
 }
}

运行结果

123B123是4位或者7位16进制数

温馨提示:答案为网友推荐,仅供参考