从字符串中删除set子字符串

时间:2012-03-21 19:33:08

标签: java

我需要在Java中从字符串中删除set substring。我怎么能这样做? 例如:

string st1="The end of the text"; string st2="end of the ";

结果:
st1="The text".

4 个答案:

答案 0 :(得分:4)

你可以这样做:

String newString = st1.replace(st2, "");

// String newString2 = st1.replaceAll(st2, ""); Alternative
// String newString3 = st1.replaceFirst(st2, ""); Alternative 2

但是,你的问题会闻到作业的味道,所以你应该在未来的问题上加上那个标签,如果这是真的。

Java String documentation

答案 1 :(得分:2)

以下是否符合您的要求?

str1 = st1.replace(st2,"");

答案 2 :(得分:0)

如果您想使用substring(),可以这样做:

public static String getCustomString(String s1, String s2)
{
    if(s1.length() >= s2.length())
    {
        if(s1.contains(s2))
            return s1.substring(0, s1.indexOf(s2)) + s1.substring(s1.indexOf(s2) + s2.length());
    }
    else
    {
        if(s2.contains(s1))
            return s2.substring(0, s2.indexOf(s1)) + s2.substring(s2.indexOf(s1) + s1.length());
    }
    return "";
}

答案 3 :(得分:0)

如果是家庭作业(使用最少的Java API调用:

public void subString(String st1, String st2) {

   int s2len = st2.length();
   int s1len = st1.length();

   int i = 0;
   int count = 0;
   while(i <= st1.length() && i+st2.length() <= st1.length()) {

       if (st1.substring(i, i+st2.length()).equalsIgnoreCase(st2)) {
          st1 = (i > 0? st1.substring(0, i) : "") + st1.substring(i+st2.length());
          i=0;
       }
       else {
          i++;
       }
   }
   System.out.println(st1);
}

否则:

st1.replace(st2, "");