天天看点

Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字

/**

  * 判断是否为汉字

  * 

  * @param str

  * @return

  */

 public static boolean isGBK(String str) {

  char[] chars = str.toCharArray();

  boolean isGBK = false;

  for (int i = 0; i < chars.length; i++) {

   byte[] bytes = ("" + chars[i]).getBytes();

   if (bytes.length == 2) {

    int[] ints = new int[2];

    ints[0] = bytes[0] & 0xff;

    ints[1] = bytes[1] & 0xff;

    if (ints[0] >= 0x81 && ints[0] <= 0xFE && ints[1] >= 0x40

      && ints[1] <= 0xFE) {

     isGBK = true;

     break;

    }

   }

  }

  return isGBK;

 }

  * 判断是否为乱码

 public static boolean isMessyCode(String str) {

  for (int i = 0; i < str.length(); i++) {

   char c = str.charAt(i);

   // 当从Unicode编码向某个字符集转换时,如果在该字符集中没有对应的编码,则得到0x3f(即问号字符?)

   //从其他字符集向Unicode编码转换时,如果这个二进制数在该字符集中没有标识任何的字符,则得到的结果是0xfffd

   //System.out.println("--- " + (int) c);

   if ((int) c == 0xfffd) {

    // 存在乱码

    //System.out.println("存在乱码 " + (int) c);

    return true;

  return false; 

 /**

  * 判断字符串是否为双整型数字

 public static boolean isDouble(String str) {

  if (StringUtil.isNullOrEmpty(str)) {

   return false;

  Pattern p = Pattern.compile("-*\\d*.\\d*");

  // Pattern p = Pattern.compile("-*"+"​​\\d*"+"."+"\\d​​*");

  return p.matcher(str).matches();

  * 判断字符串是否为整字

 public static boolean isNumber(String str) {

  Pattern p = Pattern.compile("-*\\d*");

  * 判断是否为数字

 public static boolean isNumeric(String str)   

 {   

         Pattern pattern = Pattern.compile("[0-9]*");   

         Matcher isNum = pattern.matcher(str);   

        if( !isNum.matches() ) {   

           return false;   

         }   

        return true;   

需要导入 java.util.regex.Pattern 和 java.util.regex.Matcher