Yash-777 commented on a change in pull request #395: Replaces the given String,
with the String which is nested in between two Strings.
URL: https://github.com/apache/commons-lang/pull/395#discussion_r247473007
##########
File path: src/main/java/org/apache/commons/lang3/StringUtils.java
##########
@@ -3124,6 +3124,41 @@ public static String substringBetween(final String str,
final String open, final
return list.toArray(new String [list.size()]);
}
+ /**
+ * <p>Replaces the given String, with the String which is nested in
between two Strings.</p>
+ *
+ * <p>A {@code null} input String returns {@code null}.
+ * A {@code null} open/close returns {@code null} (no match).
+ * An empty ("") open and close returns an empty string.</p>
+ *
+ * @param str the String containing the substring, may be null
+ * @param replace the Sting to be replaced, which is nested in between
open and close substrings
+ * @param open the String before the substring, may be null
+ * @param close the String after the substring, may be null
+ * @return the substring, {@code null} if no match
+ */
+ public static String replaceSubstringInBetween(final String str, final
String replace, final String open, final String close) {
+ if (str == null || open == null || close == null) {
+ return null;
+ }
+ final int start = str.indexOf(open);
+ if (start != INDEX_NOT_FOUND) {
+ String preceding = "";
+ if (start > 0) {
+ preceding = str.substring(0, start);
Review comment:
Thanks a lot,
As per your suggestion have changed the code as follows.
```java
public static String replaceSubstringInBetween(final String str, final
String replace, final String open, final String close) {
if (str == null) {
return null;
}
if (open == null || close == null) {
return str;
}
final int start = str.indexOf(open);
if (start != INDEX_NOT_FOUND) {
String preceding = "";
if (start > 0) {
preceding = str.substring(0, start);
}
final int end = str.indexOf(close, start + open.length());
if (end != INDEX_NOT_FOUND) {
String exceeding = "";
if ((end < str.length() - 1) && (end + close.length() <
str.length())) {
exceeding = str.substring(end + close.length(),
str.length());
}
//String middleString = str.substring(start + open.length(),
end);
return preceding + open + replace + close + exceeding;
}
}
return str;
}
```
Please suggest that the name of the function is valid
`replaceSubstringInBetween()` or do i need to change the name.
I will add more unit test on this function.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services