//替换字符串中连续出现的指定字符串
public class ReplaceString{
//替换指定的字符串(from 字符串替换成to字符串)
public static String replaceString(String str,String from,String to)
{
if(str==null||from==null||str.equals("")||from.equals(""))
{
return str;
}
//字符串转数组
char[]chs=str.toCharArray();
char[]chf=from.toCharArray();
int match=0; //匹配到的字符串
//from字符串的替换成0(Null)
for(int i=0;i<chs.length;i++)
{
if(chs[i]==chf[match++])
{
if(match==chf.length)
{
//将所有的from串转换成0(此处代码写错)
clear(chs,i,chf.length);
match=0;
}
}else
{
if(chs[i]==chf[0])
{
i--;
}
match=0;
}
}
//将连续的0替换成to字符串
String res="";
String cur="";
for(int i=0;i<chs.length;i++)
{
if(chs[i]!=0)
{
cur=cur+String.valueOf(chs[i]);
//System.out.println(cur);
}
if(chs[i]==0&&(i==0||chs[i-1]!=0))
{
res=res+cur+to;
cur="";
}
}
if(!cur.equals(""))
{
res=res+cur;
}
return res;
}
//清除from字符串
public static void clear(char[]ch,int end,int len)
{
while(len--!=0)
{
ch[end--]=0; //设置为0(转为字符串为null)
}
}
public static void main(String[]args)
{
String str="123abc";
String from="abc";
String to="X";
//字符串替换
System.out.println(replaceString(str,from,to));
}
}
替换字符串中连续出现的指定字符串
最新推荐文章于 2022-12-05 21:27:15 发布