当前位置: 技术问答>java相关
有请高手帮我编个替换器
来源: 互联网 发布时间:2017-04-06
本文导语: 功效 :将一段内容中的特定字串替换成我们指定的内容,并返回替换次数。 构造方式(例): public int replacer(String 需替换内容全文,String 指定的替换字串) { .... return 替换次数; } 可能上述功能用St...
功效 :将一段内容中的特定字串替换成我们指定的内容,并返回替换次数。
构造方式(例):
public int replacer(String 需替换内容全文,String 指定的替换字串)
{
....
return 替换次数;
}
可能上述功能用String型参数难以实现,不过本人对StringBuffer没有研究,一时不能上手,所以有请各位高手指点。谢谢。
多谢览贴。
构造方式(例):
public int replacer(String 需替换内容全文,String 指定的替换字串)
{
....
return 替换次数;
}
可能上述功能用String型参数难以实现,不过本人对StringBuffer没有研究,一时不能上手,所以有请各位高手指点。谢谢。
多谢览贴。
|
随便写了一个,作为参考:
public static int getReplace(StringBuffer sb, String strSrc, String strDst) {
// do some pretreatment firstly
// i.e. when strSrc is NULL or is empty
String str = sb.toString();
StringBuffer sbReturn = new StringBuffer();
int i, curr = 0, count = 0, len = strSrc.length();
while ((i = str.indexOf(strSrc, curr)) != -1) {
sbReturn.append(str.substring(curr, i));
sbReturn.append(strDst);
curr = i + len;
count++;
}
sb.replace(0, sb.length(), sbReturn.toString());
return count;
}
public static int getReplace(StringBuffer sb, String strSrc, String strDst) {
// do some pretreatment firstly
// i.e. when strSrc is NULL or is empty
String str = sb.toString();
StringBuffer sbReturn = new StringBuffer();
int i, curr = 0, count = 0, len = strSrc.length();
while ((i = str.indexOf(strSrc, curr)) != -1) {
sbReturn.append(str.substring(curr, i));
sbReturn.append(strDst);
curr = i + len;
count++;
}
sb.replace(0, sb.length(), sbReturn.toString());
return count;
}
|
String本来就提供这个功能啊
class test
{
public static void main(String[] args)
{
String reStr = "this is a back and is all";
System.out.println(reStr);
reStr = reStr.replaceAll("is","as");
System.out.println(reStr);
}
}
然后就是求替换多少次了
class test
{
public static void main(String[] args)
{
String reStr = "this is a back and is all";
String re = "is";
String tempStr =reStr;
int i = 0;
int count = 0;
do
{
i = tempStr.indexOf(re);
if(i==-1)
{
}
else
{
count++;
tempStr = tempStr.substring(i+1);
}
}
while(i!=-1);
System.out.println(count);
System.out.println(reStr);
reStr = reStr.replaceAll("is","as");
System.out.println(reStr);
}
}
class test
{
public static void main(String[] args)
{
String reStr = "this is a back and is all";
System.out.println(reStr);
reStr = reStr.replaceAll("is","as");
System.out.println(reStr);
}
}
然后就是求替换多少次了
class test
{
public static void main(String[] args)
{
String reStr = "this is a back and is all";
String re = "is";
String tempStr =reStr;
int i = 0;
int count = 0;
do
{
i = tempStr.indexOf(re);
if(i==-1)
{
}
else
{
count++;
tempStr = tempStr.substring(i+1);
}
}
while(i!=-1);
System.out.println(count);
System.out.println(reStr);
reStr = reStr.replaceAll("is","as");
System.out.println(reStr);
}
}
|
public static int replacer(String oldS,String newS)
{
int num = 0;
for(int i=0;i
{
int num = 0;
for(int i=0;i