替换字符串中的子字符串

来源:互联网 发布:网络布线怎么收费 编辑:程序博客网 时间:2024/06/05 07:37
public class StringUtils{public static final String replace(String line, String oldString, String newString){if (line == null)return null;int i = 0;if ((i = line.indexOf(oldString, i)) >= 0){char line2[] = line.toCharArray();//数组1char newString2[] = newString.toCharArray();int oLength = oldString.length();StringBuffer buf = new StringBuffer(line2.length);//数组1的长度的字符串buf.append(line2, 0, i).append(newString2);i += oLength;int j;for (j = i; (i = line.indexOf(oldString, i)) > 0; j = i){buf.append(line2, j, i - j).append(newString2);i += oLength;}buf.append(line2, j, line2.length - j);return buf.toString();} else{return line;}}public static void main(String[] args){  String rep= StringUtils.replace("12345678","34","qw");System.out.println(rep);StringBuffer  sb=new StringBuffer("12334324");String line="123456783456";String newLine=line.replace("34","qw");System.out.println(newLine);    String line2="1234563478";System.out.println(line2.indexOf("34",4));}}
结果
<img src="http://img.blog.csdn.net/20161013143041980?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<strong><span style="font-size:24px;">了解</span></strong><h5><div style="WORD-WRAP: break-word; POSITION: relative; PADDING-TOP: 2px; MARGIN-LEFT: 20px">java.lang.<a target=_blank class="header" href="eclipse-javadoc:%E2%98%82=Sort/D:%5C/Program%20Files%5C/Java%5C/jdk1.7.0_79%5C/jre%5C/lib%5C/rt.jar%3Cjava.lang(String.class%E2%98%83String">String</a>.indexOf(<a target=_blank class="header" href="eclipse-javadoc:%E2%98%82=Sort/D:%5C/Program%20Files%5C/Java%5C/jdk1.7.0_79%5C/jre%5C/lib%5C/rt.jar%3Cjava.lang(String.class%E2%98%83String~indexOf~Ljava.lang.String;~I%E2%98%82String">String</a> str, int fromIndex)</div></h5>的用法
<strong><span style="font-size:24px;">//按照人类的思维,首先是子字符串的匹配,与子字符串全部相同,返回子字符串的初始位置,可以用indexOf()来实现,如果没有,返回-1<span style="white-space:pre"></span>//找到他的全部初始位置,所以要用循环,类似于line.indexOf(oldString)<span style="white-space:pre"></span>//但是indexOf有一个缺陷就是,他只返回第一个这样的子字符串的的初始位置。<span style="white-space:pre"></span>      // 所以我们用line.indexOf(oldString,index),index表示从line的index位置开始寻找</span></strong>
<strong><span style="font-size:24px;">了解StringBuffer append(char[] str, int offset, int len) 的用法</span></strong>


0 0