`
jilong-liang
  • 浏览: 485274 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

下面有一个字符串如:abcbc,如何替换成afff输出不能用String,replace替换也不用replaceAll("bc","ff");

    博客分类:
  • Java
阅读更多

public class Test9 {

/**

 * 下面有一个字符串如:abcbc,如何替换成afff输出,

 * 不能用String,replace替换也不用replaceAll("bc","ff"); 

 * 用了replace和replaceAll都不给分,也无效

 */

public static void main(String[] args) {

       System.out.println(replace("abcbc""bc""ff"));//只能用这种

 

       String Str="abcbc";

       Str=Str.replace("bc""ff");

       Str=Str.replaceAll("bc""ff"); 

       System.out.println(Str);

 

}

public static String replace(String param, String old, String _new)  {

       String value = "";

       int repLen = old.length();

       int val;

       while ((val = param.indexOf(old)) != -1) {

            value += param.substring(0, val);

            value += _new;

            param = param.substring(val + repLen);

   }

           value += param;

      return value;

}

}

0
5
分享到:
评论
4 楼 jxxfldt 2013-11-15  
public static String replace(String s, String oldStr, String newStr) {
char[] value = s.toCharArray();
char[] oldArr = oldStr.toCharArray();
int oldStrLength = oldArr.length;
int length = value.length;
boolean bool = false;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
if (value[i] == oldArr[0]) {
for (int j = 1; j < oldStrLength; j++) {
if ((i + j) < length && value[i + j] == oldArr[j]) {
bool = true;
} else
bool = false;
}
}
if (bool) {
sb.append(newStr);
bool = false;
i += oldStrLength-1;

} else {
sb.append(value[i]);
}

}
return sb.toString();

}
写了另外一种 请指教
3 楼 jilong-liang 2013-03-25  
jiaohuizhe 写道
错了,把StringBuilder ss=new StringBuilder();这行删除就好了,刚刚试了下StringBuilder。
O(∩_∩)O谢谢提出~~受教 呵呵
2 楼 jiaohuizhe 2013-03-25  
错了,把StringBuilder ss=new StringBuilder();这行删除就好了,刚刚试了下StringBuilder。
1 楼 jiaohuizhe 2013-03-25  
你写的方法有问题,如果是从bc替换为abc则会变成死循环了,而且替换操作建议使用StringBuffer或StringBuilder,下面我用StringBuffer写了一段

public static String replace(String param, String old, String _new) {
StringBuilder ss=new StringBuilder();
StringBuffer sb=new StringBuffer(param);
int index=0;
while((index=sb.indexOf(old,index))!=-1) {
sb.delete(index,index+old.length());
sb.insert(index,_new);
index+=_new.length();
}
return sb.toString();
}

相关推荐

Global site tag (gtag.js) - Google Analytics