给定另一个字符串的开头替换子字符串

时间:2016-10-21 21:15:40

标签: java

我有两个字符串s1& S2。如果s1以s2开头,我想从s1中删除s2。 s2可以是可变长度。

if

现在我从s1开始对s2进行索引计算,然后提取子字符串。

我很好奇有没有更好的方法呢?正则表达式?

3 个答案:

答案 0 :(得分:3)

使用正则表达式来解决简单的子字符串问题是没有意义的。细分:

//precondition: s2.length() <= s1.length()
String piece = s1.substring(0, s2.length());
String remainder = s1.substring(s2.length());
return piece.equals(s2) ? remainder : s1;

甚至更短/简化:

return s1.startsWith(s2) ? s1.substring(s2.length()) : s1;

答案 1 :(得分:-1)

在描述问题的方式中,您希望从s1中删除s2。实际上,您希望用空字符串替换s1中s2的所有出现,这是使用

完成的
s1.replace(s2,"");

 s1.replaceFirst(s2,"");

如果你想juste删除s2的第一次出现

答案 2 :(得分:-1)

if(s1.startsWith(s2) && s1.length() > s2.length()) {
            System.out.println(s1.substring(s2.length(), s1.length()));
        }

或许这样的事情?