【1】Java字符串整数工具类

Java工具类库存

字符串操作

-1.判断字符串是否为全数字

/*
 *  isNum("2114") return true
 *  isNum("ab42a") return false
 *  isNum("1234 ") return false [含空格]
 */
public static boolean isNum(String str){
  return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}

-2.判断字符串是否以字母开头

/*
 *  isBeginWithCharacter("2114") return false
 *  isBeginWithCharacter("ab42a") return true
 *  isBeginWithCharacter("1234 ") return false 
 */
public static boolean isBeginWithCharacter(String str){
      return str.matches("^[a-z,A-Z].*$");
    }

-3.判断字符串是否包含汉字

/*
 *  isContainChinese("你好") return true
 *  isContainChinese("ab42a") return false
 *  isContainChinese("1234") return false 
 */
    public static boolean isContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

-4.随机生成单个简体汉字字符

/*
 *  getChineseChar() return "你"
 *  getChineseChar() return "博"
 *  getChineseChar() return "贺"
 */
    private static char getChineseChar() {
        String str = "";
        int hightPos;
        int lowPos;
        Random random = new Random();
        hightPos = (176 + Math.abs(random.nextInt(39)));
        lowPos = (161 + Math.abs(random.nextInt(93)));

        byte[] b = new byte[2];
        b[0] = (Integer.valueOf(hightPos)).byteValue();
        b[1] = (Integer.valueOf(lowPos)).byteValue();

        try {
            str = new String(b, "GBK");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return str.charAt(0);
    }

-5.Base64算法对字符串进行加密解密


    /**
     * encodeBase64("HelloWorld")  return   SGVsbG9Xb3JsZA==
     * decodeBase64(encodeBase64("HelloWorld")) return HelloWorld
     */
/** Base64 加密用 */
    private static final int fillchar = '=';
    private static final String cvt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/";

    /**
     * @Description Base64 解密
     * @param str:要解密的Base64字符串
     * @return:解密后的字符串
     */
    public static String decodeBase64(String str) {
        byte[] data = str.getBytes();
        int c, c1;
        int len = data.length;
        StringBuffer ret = new StringBuffer((len * 3) / 4);
        for (int i = 0; i < len; ++i) {
            c = cvt.indexOf(data[i]);
            ++i;
            c1 = cvt.indexOf(data[i]);
            c = ((c << 2) | ((c1 >> 4) & 0x3));
            ret.append((char) c);
            if (++i < len) {
                c = data[i];
                if (fillchar == c)
                    break;
                c = cvt.indexOf((char) c);
                c1 = ((c1 << 4) & 0xf0) | ((c >> 2) & 0xf);
                ret.append((char) c1);
            }
            if (++i < len) {
                c1 = data[i];
                if (fillchar == c1)
                    break;
                c1 = cvt.indexOf((char) c1);
                c = ((c << 6) & 0xc0) | c1;
                ret.append((char) c);
            }
        }
        return ret.toString();
    }

    /**
     * @Description Base64加密字符串
     * @param str:要加密的字符串
     * @return:加密后的字符串
     */
    public static String encodeBase64(String str) {
        byte[] data = str.getBytes();

        int c;
        int len = data.length;
        StringBuffer ret = new StringBuffer(((len / 3) + 1) * 4);
        for (int i = 0; i < len; ++i) {
            c = (data[i] >> 2) & 0x3f;
            ret.append(cvt.charAt(c));
            c = (data[i] << 4) & 0x3f;
            if (++i < len)
                c |= (data[i] >> 4) & 0x0f;

            ret.append(cvt.charAt(c));
            if (i < len) {
                c = (data[i] << 2) & 0x3f;
                if (++i < len)
                    c |= (data[i] >> 6) & 0x03;

                ret.append(cvt.charAt(c));
            } else {
                ++i;
                ret.append((char) fillchar);
            }

            if (i < len) {
                c = data[i] & 0x3f;
                ret.append(cvt.charAt(c));
            } else {
                ret.append((char) fillchar);
            }
        }
        return ret.toString();
    }

-6.判断输入char类型变量的字符类型 汉字 英文 数字型等

    // 判断字符的种类的枚举类型
     public static enum CharType {
      DELIMITER, // 非字母截止字符,例如,.)( 等等 ( 包含U0000-U0080)
      NUM, // 2字节数字1234
      LETTER, // gb2312中的例如:ABC,2字节字符同时包含1字节能表示的 basic latin and latin-1
      OTHER, // 其他字符
      CHINESE;// 中文字
     }

    /**
      * 判断输入char类型变量的字符类型 汉字 英文 数字型等
      *checkCharType('a').name()  return  LETTER
      *checkCharType('A').name()  return  LETTER
      *checkCharType('1').name()  return  NUM
      *checkCharType('1').name()  return  NUM
      *checkCharType('*').name()  return  DELIMITER
      *checkCharType('好').name()  return  CHINESE
      */
     public static CharType checkCharType(char c) {
      CharType ct = null;

      // 中文,编码区间0x4e00-0x9fbb
      if ((c >= 0x4e00) && (c <= 0x9fbb)) {
       ct = CharType.CHINESE;
      }

      // Halfwidth and Fullwidth Forms, 编码区间0xff00-0xffef
      else if ((c >= 0xff00) && (c <= 0xffef)) { // 2字节英文字
       if (((c >= 0xff21) && (c <= 0xff3a))
         || ((c >= 0xff41) && (c <= 0xff5a))) {
        ct = CharType.LETTER;
       }

       // 2字节数字
       else if ((c >= 0xff10) && (c <= 0xff19)) {
        ct = CharType.NUM;
       }

       // 其他字符,可以认为是标点符号
       else
        ct = CharType.DELIMITER;
      }

      // basic latin,编码区间 0000-007f
      else if ((c >= 0x0021) && (c <= 0x007e)) { // 1字节数字
       if ((c >= 0x0030) && (c <= 0x0039)) {
        ct = CharType.NUM;
       } // 1字节字符
       else if (((c >= 0x0041) && (c <= 0x005a))
         || ((c >= 0x0061) && (c <= 0x007a))) {
        ct = CharType.LETTER;
       }
       // 其他字符,可以认为是标点符号
       else
        ct = CharType.DELIMITER;
      }

      // latin-1,编码区间0080-00ff
      else if ((c >= 0x00a1) && (c <= 0x00ff)) {
       if ((c >= 0x00c0) && (c <= 0x00ff)) {
        ct = CharType.LETTER;
       } else
        ct = CharType.DELIMITER;
      } else
       ct = CharType.OTHER;

      return ct;
     }

-7.判断字符串是否都为字母

/*
 *  isAlpha("abcd") return  true
 *  isAlpha("123abc") return fasle
 */
     public static boolean isAlpha(String str) {
          if (str == null) {
           return false;
          }
          int length = str.length();

          for (int i = 0; i < length; i++) {
           if (!Character.isLetter(str.charAt(i))) {
            return false;
           }
          }
          return true;
         }

-8.判断参数字符串是否符合邮箱字符串格式

/*
 *  isValidEmail("1@1.a") return  true
 *  isValidEmail("C@1.ab") return true
 *   isValidEmail("A1a") return  fasle
 *   isValidEmail("@B1a1.a") return  fasle
 */
    public static boolean isValidEmail(String paramString) {
      String regex = "[a-zA-Z0-9_\\.]{1,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}";
      if (paramString.matches(regex)) {
       return true;
      } else {
       return false;
      }
     }

-9.判断参数字符串是否符合手机号码字符串格式

/*  判断标准: 以1开头的11位数字
 *  isValidMobiNumber("12345678901") return  true
 *  isValidMobiNumber("22345678901") return false
 */
 public static boolean isValidMobiNumber(String paramString) {
  String regex = "^1\\d{10}$";
  if (paramString.matches(regex)) {
   return true;
  }
  return false;
 }

-10.随机取得指定[min,max)的整数

/*  判断标准: 【min<max 返回between】 【min=max 返回min】 【min>max 返回0】
 *  getRandom(1,100) return  42
 *  getRandom(10,10) return  10
 *  getRandom(10,5) return  0
 */
       public static int getRandom(int min, int max) {
            if (min > max) {
                return 0;
            }
            if (min == max) {
                return min;
            }
            return min + new Random().nextInt(max - min);
        }

-11.判断字符串是否为空

/* 
 *  isEmpty("") return  true
 *  isEmpty(null) return  true
 *  isEmpty("  ") return  true
 */
    public static boolean isEmpty(String str) {  
        if (null == str || "".equals(str.trim()))  
            return true;  
        return false;  
    }

-12.int数字转为汉语字符串

/* 
 *  translateToChinese(2008) return  二千零八
 *  translateToChinese(-2008) return  负二千零八
 *  translateToChinese(0) return  零
 *  translateToChinese(200) return  二百
 */
    public static String translateToChinese(int a) {  

        String[] units = { "", "十", "百", "千", "万", "十", "百", "千", "亿" };  
        String[] nums = { "一", "二", "三", "四", "五", "六", "七", "八", "九", "十" };  

        String result = "";  
        if (a < 0) {  
            result = "负";  
            a = Math.abs(a);  
        }
        if (a == 0) {  
           return "零";
        } 

        String t = String.valueOf(a);  
        for (int i = t.length() - 1; i >= 0; i--) {  
            int r = (int) (a / Math.pow(10, i));  
            if (r % 10 != 0) {  
                String s = String.valueOf(r);  
                String l = s.substring(s.length() - 1, s.length());  
                result += nums[Integer.parseInt(l) - 1];  
                result += (units[i]);  
            } else {  
                if (!result.endsWith("零")) {  
                    result += "零";  
                }  
            }  
        }  
        String num = a + "";  
        /* 
         * 因为方法对10-20之间的数字支持不好,比如11返回一十一,不能满足需求 所以这里单独判断 
         */  
        if (a == 10) {  
            return "十";  
        } else if (a > 10 && a < 20) {  
            return result.substring(1);  
        } else if (num.endsWith("0")) {  
            result = result.substring(0, result.length() - 1);  
        }  
        return result;  
    }

-13.String字符反转

/* 
 *  strReverseWithArray("Hello World!")   return  !dlroW olleH
 */
       public static String strReverse(String string){
            if(string==null||string.length()==0)return string;
            int length = string.length();
            char [] array = string.toCharArray();
            for(int i = 0;i<length;i++){
                array[i] = string.charAt(length-1-i);
            }
            return new String(array);
        }

-14.输出字符串中存在的数字

/* 
 *  String2Num("giuw984t2n202r3209057292-t283fw")  return  98422023209057292283
 */
import java.util.*;
public class A {

    public static void main(String[] args) {
        System.out.println(String2Num("giuw984t2n202r3209057292-t283fw"));
    }

    public static String String2Num(String str) {
        if("".equals(str) || str == null)
            return "";
        str=str.trim();
        String str2="";
        if(str != null && !"".equals(str)){
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)>=48 && str.charAt(i)<=57){
                    str2+=str.charAt(i);
                }
            }
        }
        return str2;
    }

}

1.

1.

1.

1.

1.

1.

1.

1.

1.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

2.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值