class FnR {
final String lcbase
= base.
toLowerCase(); final String lcremove
= remove.
toLowerCase(); int find = 0;
int previous = 0;
StringBuilder result = new StringBuilder(base.length());
while ((find = lcbase.indexOf(lcremove, previous)) >= 0) {
result.append(base.substring(previous, find));
previous = find + remove.length();
}
result.append(base.substring(previous));
return result.toString();
}
public static void main
(String[] args
) { { "Hello there", "llo" },
{ "Hello there", "e" },
{ "Hello there", "x" },
};
System.
out.
printf("'%s' from '%s' remove '%s'\n", withoutString
(d
[0], d
[1]), d
[0], d
[1]); }
}
}
Y2xhc3MgRm5SIHsKCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB3aXRob3V0U3RyaW5nKFN0cmluZyBiYXNlLCBTdHJpbmcgcmVtb3ZlKSB7CiAgICAgICAgCiAgICAgICAgZmluYWwgU3RyaW5nIGxjYmFzZSA9IGJhc2UudG9Mb3dlckNhc2UoKTsKICAgICAgICBmaW5hbCBTdHJpbmcgbGNyZW1vdmUgPSByZW1vdmUudG9Mb3dlckNhc2UoKTsKICAgICAgICBpbnQgZmluZCA9IDA7CiAgICAgICAgaW50IHByZXZpb3VzID0gMDsKICAgICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWlsZGVyKGJhc2UubGVuZ3RoKCkpOwogICAgICAgIHdoaWxlICgoZmluZCA9IGxjYmFzZS5pbmRleE9mKGxjcmVtb3ZlLCBwcmV2aW91cykpID49IDApIHsKICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChiYXNlLnN1YnN0cmluZyhwcmV2aW91cywgZmluZCkpOwogICAgICAgICAgICBwcmV2aW91cyA9IGZpbmQgKyByZW1vdmUubGVuZ3RoKCk7CiAgICAgICAgfQogICAgICAgIHJlc3VsdC5hcHBlbmQoYmFzZS5zdWJzdHJpbmcocHJldmlvdXMpKTsKICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CgogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTdHJpbmdbXVtdIGlucHV0cyA9IHsKICAgICAgICAgICAgICAgIHsgIkhlbGxvIHRoZXJlIiwgImxsbyIgfSwKICAgICAgICAgICAgICAgIHsgIkhlbGxvIHRoZXJlIiwgImUiIH0sCiAgICAgICAgICAgICAgICB7ICJIZWxsbyB0aGVyZSIsICJ4IiB9LAogICAgICAgIH07CiAgICAgICAgZm9yIChTdHJpbmdbXSBkIDogaW5wdXRzKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCInJXMnIGZyb20gJyVzJyByZW1vdmUgJyVzJ1xuIiwgd2l0aG91dFN0cmluZyhkWzBdLCBkWzFdKSwgZFswXSwgZFsxXSk7CiAgICAgICAgfQogICAgfQp9Cg==