/** * openfire_src */ package com.xiongyingqi.util; import java.io.IOException; import java.io.StringReader; import java.io.UnsupportedEncodingException; /** * @author XiongYingqi * @version 2013-6-17 上午11:19:19 */ public class StringHelper { /** * 从第一个字符开始比较两个字符串的大小(按照单个字符的ascii码比较),例如: "abc"大于"aac"、"1234"小于"2234"、"1234"大于"123"、"223"大于"1234" * * @param firstString 第一个字符串 * @param secondString 第二个字符串 * @return 如果第一个字符串小于第二个字符串,则返回true,否则返回false */ public static boolean compareNumberString(String firstString, String secondString) { Assert.notNull(firstString, "第一个字符串为空!"); Assert.notNull(secondString, "第二个字符串为空!"); char[] chars1 = firstString.toCharArray(); char[] chars2 = secondString.toCharArray(); int length1 = chars1.length; int length2 = chars2.length; int maxLength = length1 > length2 ? length1 : length2; for (int i = 0; i < maxLength; i++) { int value1 = -1; int value2 = -1; if (i < length1) { value1 = chars1[i]; } if (i < length2) { value2 = chars2[i]; } if(value1 < value2){ return true; } else { return false; } } return false; } public static String encode(String str, String charset) { String content = null; try { content = new String(str.getBytes("ISO-8859-1"), charset); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return content; } /** * 判断字符串不为空,并且字符串内容不为空 * * @param input * @return */ public static boolean notNullAndNotEmpty(String input) { return input != null && !"".equals(input.trim()); } /** * 计算数组的hashCode <br> * 2013-10-25 上午11:06:57 * * @param stringArray * @return */ public static int hashCodeOfStringArray(String[] stringArray) { if (stringArray == null) { return 0; } int hashCode = 17; for (int i = 0; i < stringArray.length; i++) { String value = stringArray[i]; hashCode = hashCode * 31 + (value == null ? 0 : value.hashCode()); } return hashCode; } /** * 判断字符串是否为空,或者字符串内容为空 * * @param input * @return */ public static boolean nullOrEmpty(String input) { return input == null || "".equals(input.trim()); } /** * 换行符 <br> * 2013-8-14 下午1:20:06 * * @return */ public static String line() { String lineSeparator = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("line.separator")); // String lineSeparator = System.getProperty("line.separator"); return lineSeparator; } /** * <br> * 2013-8-28 下午5:26:24 * * @param str * @return */ public static String convertEncode(String str) { if (nullOrEmpty(str)) { return null; } try { return new String(str.getBytes(), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return str; } /** * StringReader转换为字符串 <br> * 2013-9-2 下午9:03:29 * * @param reader * @return */ public String stringReaderToString(StringReader reader) { StringBuilder builder = new StringBuilder(); char[] buffer = new char[128]; int length = -1; try { while ((length = reader.read(buffer)) != -1) { if (buffer.length != length) { System.arraycopy(buffer, 0, buffer, 0, length); } builder.append(buffer); } } catch (IOException e) { e.printStackTrace(); } finally { reader.close(); } return builder.toString(); } public static String replaceFirst(String content, String target, String replacement) { int index = content.indexOf(target); if (index < 0) { return content; } StringBuilder builder = new StringBuilder(); String front = content.substring(0, index); String last = content.substring(index + target.length()); return builder.append(front).append(replacement).append(last).toString(); } public static String UUID() { return java.util.UUID.randomUUID().toString().replaceAll("-", ""); } public static void main(String[] args) { System.out.println(replaceFirst("asfasf.ccc.bbb.ccc.cccc.", "ccc.", "dddd.")); //"abc"大于"aac"、"1234"小于"2234"、"1234"大于"123"、"223"大于"1234" System.out.println(compareNumberString("", "")); System.out.println(compareNumberString("abc", "aac")); System.out.println(compareNumberString("1234", "2234")); System.out.println(compareNumberString("1234", "123")); System.out.println(compareNumberString("223", "1234")); } }