Merge pull request #1894 from buddhini81/master
Code for article BAEL-839
This commit is contained in:
commit
7ceac32faf
@ -0,0 +1,25 @@
|
||||
package com.baeldung.regexp;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class EscapingChars {
|
||||
public boolean isMatching(String input, String pattern) {
|
||||
return input.matches(pattern);
|
||||
}
|
||||
|
||||
public int splitAndCountWords(String input, String pattern) {
|
||||
return input.split(pattern).length;
|
||||
}
|
||||
|
||||
public int splitAndCountWordsUsingQuoteMethod(String input, String pattern) {
|
||||
return input.split(Pattern.quote(pattern)).length;
|
||||
}
|
||||
|
||||
public String changeCurrencySymbol(String input, String pattern,
|
||||
String correctStr) {
|
||||
Pattern p = Pattern.compile(pattern);
|
||||
Matcher m = p.matcher(input);
|
||||
return m.replaceAll(correctStr);
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.baeldung.regexp;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class EscapingCharsManualTest {
|
||||
@Test
|
||||
public void givenRegexWithDot_whenMatchingStr_thenMatches() {
|
||||
String strInput = "foof";
|
||||
String strRegex = "foo.";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(true, e.isMatching(strInput, strRegex));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRegexWithDotEsc_whenMatchingStr_thenNotMatching() {
|
||||
String strInput = "foof";
|
||||
String strRegex = "foo\\.";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(false, e.isMatching(strInput, strRegex));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRegexWithPipeEscaped_whenSplitStr_thenSplits() {
|
||||
String strInput = "foo|bar|hello|world";
|
||||
String strRegex = "\\Q|\\E";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(4, e.splitAndCountWords(strInput, strRegex));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRegexWithPipeEscQuoteMeth_whenSplitStr_thenSplits() {
|
||||
String strInput = "foo|bar|hello|world";
|
||||
String strRegex = "|";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(4,
|
||||
e.splitAndCountWordsUsingQuoteMethod(strInput, strRegex));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRegexWithDollar_whenReplacing_thenNotReplace() {
|
||||
String strInput = "I gave $50 to my brother."
|
||||
+ "He bought candy for $35. Now he has $15 left.";
|
||||
String strRegex = "$";
|
||||
String strReplacement = "£";
|
||||
String output = "I gave £50 to my brother."
|
||||
+ "He bought candy for £35. Now he has £15 left.";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(output,
|
||||
e.changeCurrencySymbol(strInput, strRegex, strReplacement));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRegexWithDollarEsc_whenReplacing_thenReplace() {
|
||||
String strInput = "I gave $50 to my brother. He bought candy for $35. Now he has $15 left.";
|
||||
String strRegex = "\\$";
|
||||
String strReplacement = "£";
|
||||
String output = "I gave £50 to my brother. He bought candy for £35. Now he has £15 left.";
|
||||
EscapingChars e = new EscapingChars();
|
||||
|
||||
assertEquals(output,
|
||||
e.changeCurrencySymbol(strInput, strRegex, strReplacement));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user