常用java字符串操作函数(转)

[代码] java代码

001/**
002   * 分割字符串
003   *
004   * @param str String 原始字符串
005   * @param splitsign String 分隔符
006   * @return String[] 分割后的字符串数组
007   */
008@SuppressWarnings("unchecked")
009public static String[] split(String str, String splitsign) {
010    int index;
011    if (str == null || splitsign == null)
012      return null;
013    ArrayList al = new ArrayList();
014    while ((index = str.indexOf(splitsign)) != -1) {
015      al.add(str.substring(0, index));
016      str = str.substring(index + splitsign.length());
017    }
018    al.add(str);
019    return (String[]) al.toArray(new String[0]);
020}
021  
022/**
023   * 替换字符串
024   *
025   * @param from String 原始字符串
026   * @param to String 目标字符串
027   * @param source String 母字符串
028   * @return String 替换后的字符串
029   */
030public static String replace(String from, String to, String source) {
031    if (source == null || from == null || to == null)
032      return null;
033    StringBuffer bf = new StringBuffer("");
034    int index = -1;
035    while ((index = source.indexOf(from)) != -1) {
036      bf.append(source.substring(0, index) + to);
037      source = source.substring(index + from.length());
038      index = source.indexOf(from);
039    }
040    bf.append(source);
041    return bf.toString();
042}
043  
044/**
045   * 替换字符串,能能够在HTML页面上直接显示(替换双引号和小于号)
046   *
047   * @param str String 原始字符串
048   * @return String 替换后的字符串
049   */
050public static String htmlencode(String str) {
051    if (str == null) {
052      return null;
053    }
054  
055    return replace("/"", "&quot;", replace("<", "&lt;", str));
056}
057  
058/**
059   * 替换字符串,将被编码的转换成原始码(替换成双引号和小于号)
060   *
061   * @param str String
062   * @return String
063   */
064public static String htmldecode(String str) {
065    if (str == null) {
066      return null;
067    }
068  
069    return replace("&quot;", "/"", replace("&lt;", "<", str));
070}
071  
072private static final String _BR = "<br/>";
073  
074/**
075   * 在页面上直接显示文本内容,替换小于号,空格,回车,TAB
076   *
077   * @param str String 原始字符串
078   * @return String 替换后的字符串
079   */
080public static String htmlshow(String str) {
081    if (str == null) {
082      return null;
083    }
084  
085    str = replace("<", "&lt;", str);
086    str = replace(" ", "&nbsp;", str);
087    str = replace("/r/n", _BR, str);
088    str = replace("/n", _BR, str);
089    str = replace("/t", "&nbsp;&nbsp;&nbsp;&nbsp;", str);
090    return str;
091}
092  
093/**
094   * 返回指定字节长度的字符串
095   *
096   * @param str String 字符串
097   * @param length int 指定长度
098   * @return String 返回的字符串
099   */
100public static String toLength(String str, int length) {
101    if (str == null) {
102      return null;
103    }
104    if (length <= 0) {
105      return "";
106    }
107    try {
108      if (str.getBytes("GBK").length <= length) {
109        return str;
110      }
111    } catch (Exception ex) {
112    }
113    StringBuffer buff = new StringBuffer();
114  
115    int index = 0;
116    char c;
117    length -= 3;
118    while (length > 0) {
119      c = str.charAt(index);
120      if (c < 128) {
121        length--;
122      } else {
123        length--;
124        length--;
125      }
126      buff.append(c);
127      index++;
128    }
129    buff.append("...");
130    return buff.toString();
131}
132  
133/**
134   * 判断是否为整数
135   *
136   * @param str 传入的字符串
137   * @return 是整数返回true,否则返回false
138   */
139public static boolean isInteger(String str) {
140    Pattern pattern = Pattern.compile("^[-//+]?[//d]*$");
141    return pattern.matcher(str).matches();
142}
143  
144/**
145   * 判断是否为浮点数,包括double和float
146   *
147   * @param str 传入的字符串
148   * @return 是浮点数返回true,否则返回false
149   */
150public static boolean isDouble(String str) {
151    Pattern pattern = Pattern.compile("^[-//+]?[.//d]*$");
152    return pattern.matcher(str).matches();
153}
154  
155/**
156   * 判断输入的字符串是否符合Email样式.
157   *
158   * @param str 传入的字符串
159   * @return 是Email样式返回true,否则返回false
160   */
161public static boolean isEmail(String str) {
162    Pattern pattern = Pattern.compile("^//w+([-+.]//w+)*@//w+([-.]//w+)*//.//w+([-.]//w+)*$");
163    return pattern.matcher(str).matches();
164}
165  
166/**
167   * 判断输入的字符串是否为纯汉字
168   *
169   * @param str 传入的字符窜
170   * @return 如果是纯汉字返回true,否则返回false
171   */
172public static boolean isChinese(String str) {
173    Pattern pattern = Pattern.compile("[/u0391-/uFFE5]+$");
174    return pattern.matcher(str).matches();
175}
176  
177/**
178   * 是否为空白,包括null和""
179   *
180   * @param str
181   * @return
182   */
183public static boolean isBlank(String str) {
184    return str == null || str.trim().length() == 0;
185}
186  
187/**
188* 判断是不是合法手机
189* handset 手机号码
190*/
191public static boolean isHandset(String handset) {
192try {
193   if(!handset.substring(0,1).equals("1")) {
194    return false;
195   }
196   if (handset==null || handset.length()!=11) {
197    return false;
198   }
199   String check = "^[0123456789]+$";
200   Pattern regex = Pattern.compile(check);
201   Matcher matcher = regex.matcher(handset);
202   boolean isMatched = matcher.matches();
203   if(isMatched) {
204    return true;
205   } else {
206    return false;
207   }
208} catch (RuntimeException e) {
209   return false;
210}
211}
212}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值