首页>代码>java对字符串中的单词进行替换>/StringReplace/src/utils/StringReplaceUtil.java
package utils;

public class StringReplaceUtil {
   public static String replace(String str,String xx,String yy){
	   String[]strArray=toArray(str);
	   String[]xxArray=toArray(xx);
//	   String[]yyArray=toArray(yy);
//	   int start=-1;
//	   int end=-1;
	   for (int i = 0; i < strArray.length; i++) {
		  boolean flag=true;
		  for (int j = 0; j < xxArray.length; j++) {
			 if(!strArray[i+j].equals(xxArray[j])){
				 flag=false;
				 break;
			 }
		  }
		  if(flag){
			  strArray[i]=yy;
			  for (int j = 1; j < xxArray.length; j++) {
				  strArray[i+j]="";
			  }
		  }
	   }
	   return toStr(strArray);
   }
   public static String replace(String str,String xx,String yy,String[]except){
	   String[]strArray=toArray(str);
	   String[]xxArray=toArray(xx);
//	   String[]yyArray=toArray(yy);
//	   int start=-1;
//	   int end=-1;
	   for (int i = 0; i < strArray.length; i++) {
		  boolean flag=true;
		  boolean flag4=false;
		  //boolean flag2=true;
		  for (int j = 0; j < xxArray.length; j++) {
			 if(!strArray[i+j].equals(xxArray[j])){
				 flag=false;
				 break;
			 }
		  }
		  
		  if(flag){
			  System.out.println("flag="+flag);
		  for (int ii = 0; ii < except.length; ii++) {
			  boolean flag3=true;
			  String[]prefix=toArray(getPrefix(except[ii]));
		      String[]suffix=toArray(getSuffix(except[ii]));
		      int strat=i-prefix.length;
		      boolean flag1=true;
		      for (int jj = 0; jj < prefix.length; jj++) {
		    	     if(strat<0){
						 flag1=false;
						 break; 
		    	     }
					 if(!strArray[strat+jj].equals(prefix[jj])){
//						 flag1=false;
						 flag1=false;
						 break;
					 }
			  }
		      //System.out.println("flag1="+flag1);
		      if(flag1){
		    	  int end=i+xxArray.length;
			      boolean flag2=true;
			      
			      for (int jj = 0; jj < suffix.length; jj++) {
			    	     if(end+jj>=strArray.length){
							 flag2=false;
							 break; 
			    	     }
						 if(!strArray[end+jj].equals(suffix[jj])){
							 flag2=false;
							 break;
						 }
				  }
			      //System.out.println("i="+i+","+"flag1="+flag1+",flag2="+flag2);
			      flag3=flag1&&flag2;
		      }else{
		    	  flag3=false;
		      }
		      
		      if(flag3){
		    	  flag4=flag3;
		    	  break;
		      }
		  }
		  
		  }
		  //System.out.println("f4="+flag4+",flag="+flag+",i="+i);
		  if(flag&&(flag4==false)){
			  strArray[i]=yy;
			  for (int j = 1; j < xxArray.length; j++) {
				  strArray[i+j]="";
			  }
		  }
	   }
	   return toStr(strArray);
   }
public static String getPrefix(String str) {
	int here=str.indexOf("+");
	return str.substring(0,here);
}
public static String getSuffix(String str) {
	int here=str.indexOf("+");
	return str.substring(here+1);
}
private static String toStr(String[] strArray) {
	String last="";
	for (int i = 0; i < strArray.length; i++) {
		last+=strArray[i];
	}
	return last;
}

private static String[] toArray(String str) {
	int len=str.length();
	String[]last=new String[len];
	for (int i = 0; i <len ; i++) {
		last[i]=""+str.charAt(i);
	}
	return last;
}
}
最近下载更多
skyvsdes  LV1 2021年7月29日
jnwkkk  LV1 2020年10月8日
李英齐  LV1 2020年10月1日
mengxiangjava  LV2 2019年10月20日
墨染青衫  LV2 2019年6月17日
734688149  LV1 2019年6月3日
sxzysh  LV1 2019年5月23日
double123456lll  LV1 2019年5月5日
ethrtwfd  LV1 2019年3月31日
photograph  LV1 2018年10月13日
最近浏览更多
fghfffgh  LV1 2021年10月14日
youdelu11 2021年10月13日
暂无贡献等级
youdelu 2021年10月13日
暂无贡献等级
zqy999 2021年9月13日
暂无贡献等级
skyvsdes  LV1 2021年7月29日
lklk1998  LV3 2021年3月26日
1234567sc  LV3 2021年3月11日
jnwkkk  LV1 2020年10月8日
李英齐  LV1 2020年10月1日
zhengsi  LV1 2020年9月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友