StringUtils

//需要导入第三方jar包pinyin4j.jar

import net.sourceforge.pinyin4j.PinyinHelper;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtils {
   protected static final String TAG = StringUtils.class.getSimpleName();

   /**
    * 增加空白
    */
   public static String addBlank(int size) {
      return String.format("%" + size + "s", "");
   }

   /**
    * 判断字符串是否为null或者""
    */
   public static boolean isEmptyOrNull(String content) {
      if (content == null || content.equals("")) {
         return true;
      }
      return false;
   }

   /**
    *  判断字符串是否为IP地址
    */
   public static boolean isIPAddress(String ipString) {
      if (ipString != null) {
         String[] singleArray = ipString.split("\\.");
         if (singleArray == null) {
            return false;
         }
         for (String numString : singleArray) {
            if (isEmptyOrNull(numString.trim())) {
               return false;
            }
            try {
               int num = Integer.parseInt(numString.trim());
               if (num < 0 || num > 255) {
                  return false;
               }
            } catch (NumberFormatException e) {
               return false;
            }

         }
         return true;
      }
      return false;
   }

   /**
    * 是否是email地址
    */
   public static boolean isEmailAddress(String emailString) {
      String format = "\\p{Alpha}\\w{2,15}[@][a-z0-9]{3,}[.]\\p{Lower}{2,}";
      return isMatch(format, emailString);
   }

   /**
    * 是否为数字
    */
   public static boolean isDigit(String digitString) {
      if (!isEmptyOrNull(digitString)) {
         String regex = "[0-9]*";
         return isMatch(regex, digitString);
      }
      return false;
   }

   /**
    *  字符串正则校验
    */
   public static boolean isMatch(String regex, String string) {

      Pattern pattern = Pattern.compile(regex);
      Matcher matcher = pattern.matcher(string);
      return matcher.matches();
   }

   /**
    *是否为URL地址
    */
   public static boolean isUrl(String strIp) {
      String strPattern = "^((https?)|(ftp))://(?:(\\s+?)(?::(\\s+?))[email protected])?([a-zA-Z0-9\\-.]+)"
            + "(?::(\\d+))?((?:/[a-zA-Z0-9\\-._?,‘+\\&%$=~*!():@\\\\]*)+)?$";
      return isMatch(strPattern, strIp);
   }

   /**
    *  String 转换成Unicode
    * @param string
    *            传入汉字
    * @return
    */
   public static String string2Unicode(String string) {
      if (!isEmptyOrNull(string)) {
         char[] charArray = string.toCharArray();
         StringBuffer buffer = new StringBuffer();
         for (char ch : charArray) {
            int code = (int) ch;
            buffer.append(code);
         }
         return buffer.toString();
      }
      return null;
   }

   /**
    *  Unicode转换成String
    * @param string
    * @return
    */
   public static String unicode2String(String string) {
      if (!isEmptyOrNull(string)) {
         int end = 0;
         String noSpace = string.trim();
         int count = noSpace.length() / 5;
         StringBuffer buffer = new StringBuffer();

         for (int j = 0; j < count; j++) {
            end += 5;
            int uCode = Integer.valueOf(noSpace.substring(j * 5, end));
            buffer.append((char) uCode);

         }
         return buffer.toString();
      }
      return null;
   }

   /**
    *  得到首字母
    */
   public static String getPinYinFirstLetter(String string) {
      if (!isEmptyOrNull(string)) {
         char[] cs = string.toCharArray();
         for (int i = 0; i < cs.length; i++) {
            String[] pinyins = null;
            if (cs[i] > 128) {
               pinyins = PinyinHelper.toHanyuPinyinStringArray(cs[i]);
            }
            if (pinyins != null && pinyins.length > 0) {
               return pinyins[0].substring(0, 1);
            }
         }
      }
      return null;
   }

   /**
    * 获取url参数
    */
   public static String getParamValueOfUrl(String url, String paramName) {
      try {
         String urls[] = url.split("[?]");
         if (urls.length > 1) {
            String param = urls[1];
            String params[] = param.split("[&]");
            for (String string : params) {
               String keyAndValue[] = string.split("[=]");
               if (keyAndValue.length > 1) {
                  String key = keyAndValue[0];
                  String value = keyAndValue[1];
                  if (key.equalsIgnoreCase(paramName)) {
                     return value;
                  }
               }
            }
         }
      } catch (Exception e) {
         return "";
      }
      return "";
   }

   /**
    * 半角转换为全角
    * @param input
    * @return
   */
   public static String ToDBC(String input) {
      char[] c = input.toCharArray();
      for (int i = 0; i < c.length; i++) {
         if (c[i] == 12288) {
            c[i] = (char) 32;
            continue;
         }
         if (c[i] > 65280 && c[i] < 65375)
            c[i] = (char) (c[i] - 65248);
      }
      return new String(c);
   }

   /**
    * 去除特殊字符或将所有中文标号替换为英文标号
    * @param str
    * @return
   */
   public static String stringFilter(String str) {
      str = str.replaceAll("【", "[").replaceAll("】", "]").replaceAll("!", "!").replaceAll(":", ":");// 替换中文标号
      String regEx = "[『』]"; // 清除掉特殊字符
      Pattern p = Pattern.compile(regEx);
      Matcher m = p.matcher(str);
      return m.replaceAll("").trim();
   }

   /**
    * 根据Unicode编码完美的判断中文汉字和符号
    * @param c
    * @return
    */

   private static boolean isChinese(char c) {

      Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);

      if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS

      || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS

      || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

      || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

      || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION

      || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS

      || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {

         return true;

      }

      return false;

   }

   /**
    * 完整的判断中文汉字和符号
    * @param strName
    * @return
    */

   public static boolean isChinese(String strName) {

      char[] ch = strName.toCharArray();

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

         char c = ch[i];

         if (isChinese(c)) {

            return true;

         }

      }

      return false;

   }
}
时间: 2024-10-10 20:28:57

StringUtils的相关文章

源码分析八(org.springframework.util包之StringUtils类))

一:spring框架util包中的StringUtils类主要是处理关于字符串 的功能方法,下面直接结合代码分析: //判断字符串是否为空,如果为nul或者""则返回true,否则返回false public static boolean isEmpty(Object str) { return str == null || "".equals(str); } //判断字符串是否有长度,不等于null同时长度大于0,则为true //这里重载两个hasLength方

肯爹的 StringUtils.isNumeric(String str)

在项目中遇到一处bug,调试的结果竟然是StringUtils.isNumeric(String str) 在捣鬼(采用的是org.apache.commons.lang.StringUtils),下面的代码是判断一个参数非空,且为整数: if(StringUtils.isNumeric(str) && StringUtils.isNotBlank(str)){ // do sth } 在简单不过的代码,却隐藏着bug ! 因为如果 str = "-1"; String

spring异常记录-----java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

今天在练习怎样SSH中进行单元測试的时候出现下列异常: SEVERE: Exception starting filter Struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:211

Apache commons lang工具类学习笔记(2)--StringUtils

StringUtils工具类具有对String具有简单而强大的处理能力,从检查空串到分割字符串,到生成格式化的字符串,使用都很方便简洁,能减少很多代码量; 详细的使用方法可以参考下面的例子或者官方的API(http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#isAlpha(java.lang.CharSequence)) packa

StringUtils工具类常用方法

前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false isNotEmpty(String str) 是否为非空,空格字符为true isBlank(String str) 是否为空,空格字符为true isNotBlank(String str) 是否为非空,空格字符为false trim(String str)去除字符串两端的控制符,空字符串.null

StringUtils 中 isEmpty 和 isBlank 的区别

在项目的工作学习中经常用到了 apache  commons 中的 StringUtils 的 isBlank 和 isEmpty 来判断字符串是否为空,这个方法都是判断字符串是否为空做判断的,以至于把我搞混了!!! 欲哭无泪啊,索性写个帖子记录下来.方便以后学习. 不多说,我们直接看源码: isBlank: public static boolean isBlank(final CharSequence cs) { int strLen; if (cs == null || (strLen =

StringUtils用法(isNotEmpty和isNotBlank)

isNotEmpty将空格也作为参数,isNotBlank则排除空格参数 参考 Quote StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码). 除了构造器,StringUtils中一共有130多个方法,并且都是static的,

Struts中的找不到StringUtils异常

今天在Struts2框架下使用JSON插件时,程序保存找不到类org/apache/commons/lang/xwork/StringUtils,我纳闷了,commons-lang-2.5.jar和commons-lang3-3.1.jar都导入了,却又发现commons-lang包中根本没有xwork子包,几经周折终于找到了原因:我导入的xwork-core-2.3.4.1.jar这个jar包没有xwork,后来有导入了xwork-core-2.2.1.1.jar这个包.呵呵,问题解决了.

StringUtils方法全集

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码). 除了构造器,StringUtils中一共有130多个方法,并且都是static的, 所以我们可以这样调用StringUtil