我有两个字符串s1& S2。如果s1以s2开头,我想从s1中删除s2。 s2可以是可变长度。
if
现在我从s1开始对s2进行索引计算,然后提取子字符串。
我很好奇有没有更好的方法呢?正则表达式?
答案 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()));
}
或许这样的事情?