[size=small]
昨天看到jive方法里面的String替换的方法,感觉哪里面实现的比较繁琐,看看一个简单的方法。但效率的话我还没有比较。
[/size]
public static String replaceAll(final String original, final String pattern, final String value) { String copy = new String(original); int index = -1; while ((index = copy.indexOf(pattern, index)) > -1) { copy = copy.substring(0, index) + value + copy.substring(index + pattern.length()); //相当于每一次都是由源串的前一部分加上要替换的新串再加上后面的部分。 index += value.length(); } return copy; }
还有,假如我们要实现一个功能,大写一句话里面的首字母,看看下面的方法实现:
public static String capitalize(final String original, final char separator) { String str = null; if (original == null || original.length() == 0) { return str; } str = original.toLowerCase(); int strLen = str.length(); StringBuffer buffer = new StringBuffer(strLen); boolean capitalizeNext = true; for (int i = 0; i < strLen; i++) { char ch = str.charAt(i); boolean isSeparator = (ch == separator); if (isSeparator) { buffer.append(ch); capitalizeNext = true; } else if (capitalizeNext) { buffer.append(Character.toTitleCase(ch)); capitalizeNext = false; } else { buffer.append(ch); } } return buffer.toString(); }// 效果:Orignal: we are success. separator: " " newString: We Are Success.
现在我只实现了单个字符分割的情况,有时间的话研究一下,多个字符分割的情况.同样这只是一个练习,在平时使用的过程中还没有碰到一句话里面每个字母都大写的。