如何在Java中处理不区分大小写的字符串替换而不使用正则表达式

如何在Java中处理不区分大小写的字符串替换而不使用正则表达式,java,string,Java,String,这是CodingBat网站的一个问题。我先粘贴问题,然后讨论我的努力: 给定两个字符串base和remove,返回基本字符串的一个版本,其中remove字符串的所有实例都已删除(不区分大小写)。您可以假定删除字符串的长度为1或更长。仅删除不重叠的实例,因此使用“xxx”删除“xx”会留下“x” 这是我到目前为止写的: public String withoutString(String base, String remove) { int len_b=base.length();

这是CodingBat网站的一个问题。我先粘贴问题,然后讨论我的努力:

给定两个字符串base和remove,返回基本字符串的一个版本,其中remove字符串的所有实例都已删除(不区分大小写)。您可以假定删除字符串的长度为1或更长。仅删除不重叠的实例,因此使用“xxx”删除“xx”会留下“x”

这是我到目前为止写的:

public String withoutString(String base, String remove) {

   int len_b=base.length();
   int len_r = remove.length();
   String result="";

   if(len_b<1 || len_r<1)
   return "";

   for (int i =0;i<=len_b-len_r;i++)
   {
      if(base.substring(i,i+len_r).equals(remove))
      {
        i=i+len_r-1;
      }

      else
      { 
        result=result+base.substring(i,i+1);
      }  
   } 

   if(!(base.substring(len_b-len_r+1, len_b).equals(remove)))
   result=result+base.substring(len_b-len_r+1, len_b);

return result;
}
public String withoutString(字符串基,字符串移除){
int len_b=base.length();
int len_r=remove.length();
字符串结果=”;

如果(len_b字符串有一个
equalsIgnoreCase(String s)
方法。

您可以使用
equalsIgnoreCase
方法将此语句
base.substring(i,i+len_r).equals(remove)
更改为
base.substring(i,i+len_r).equalsIgnoreCase

希望对您有所帮助。

不带字符串的公共字符串(字符串基,字符串移除)
public String withoutString(String base, String remove) 
{
    String str=base;
    String str1=remove;
    String str3=str;

    int k=str1.length();

    for(int i=0;i<(str.length()-k+1);i++)
    {
        if(str1.equalsIgnoreCase(str.substring(i, i+k)))
        {
            String str4=str.substring(i, i+k);
            str3=str3.replaceFirst(str4,"" );

        }
    }
    return str3;
}
{ 字符串str=基; 字符串str1=删除; 字符串str3=str; int k=str1.length();
对于(inti=0;i我没有做任何循环:)我想这不是最好的答案,但它确实有效

public String withoutString(String base, String remove) {
    String lastString = base.replace(remove, "");
    remove = remove.toLowerCase();
    String veryLastString = lastString.replace(remove, "");
    remove = remove.toUpperCase();
    String veryVeryLastString = veryLastString.replace(remove, "");
    return veryVeryLastString;
}
public String withoutString(字符串基,字符串移除){
字符串b=base.toLowerCase();
字符串r=remove.toLowerCase();

如果(b.length()工作得很好!谢谢!现在它通过了所有测试,但不知何故未能通过codingbat网站上的“其他测试”。不知道为什么。
public String withoutString(String base, String remove) {
    String lastString = base.replace(remove, "");
    remove = remove.toLowerCase();
    String veryLastString = lastString.replace(remove, "");
    remove = remove.toUpperCase();
    String veryVeryLastString = veryLastString.replace(remove, "");
    return veryVeryLastString;
}
public String withoutString(String base, String remove) {
      String b=base.toLowerCase();
      String r=remove.toLowerCase();
      if(b.length()<r.length()) return base;
      if(b.contains(r)) b=b.replaceAll(r,"");
      String temp="";
      int j=0;
      for(int i=0;i<base.length();i++)
        if(j<b.length()){
          if(base.substring(i,i+1).equalsIgnoreCase(b.substring(j,j+1))){
            temp+=base.substring(i,i+1);
            j++;
          }
        }  
      return temp;
    }