Browse Source

regex completed

Eric Foster 6 years ago
parent
commit
12f8ad91c8
3 changed files with 5441 additions and 5 deletions
  1. 17
    1
      src/main/java/HamletParser.java
  2. 41
    4
      src/test/java/HamletParserTest.java
  3. 5383
    0
      target/classes/hamlet.txt

+ 17
- 1
src/main/java/HamletParser.java View File

1
+import jdk.nashorn.internal.runtime.regexp.joni.Regex;
2
+
1
 import java.io.File;
3
 import java.io.File;
2
 import java.io.IOException;
4
 import java.io.IOException;
3
 import java.util.Scanner;
5
 import java.util.Scanner;
6
+import java.util.regex.Matcher;
7
+import java.util.regex.Pattern;
4
 
8
 
5
 /**
9
 /**
6
  * Created by thook on 10/7/15.
10
  * Created by thook on 10/7/15.
18
         File file = new File(classLoader.getResource("hamlet.txt").getFile());
22
         File file = new File(classLoader.getResource("hamlet.txt").getFile());
19
         StringBuilder result = new StringBuilder("");
23
         StringBuilder result = new StringBuilder("");
20
 
24
 
21
-        try(Scanner scanner = new Scanner(file)){
25
+        try {
26
+            Scanner scanner = new Scanner(file);
22
             while(scanner.hasNextLine()){
27
             while(scanner.hasNextLine()){
23
                 String line = scanner.nextLine();
28
                 String line = scanner.nextLine();
24
                 result.append(line).append("\n");
29
                 result.append(line).append("\n");
36
         return hamletData;
41
         return hamletData;
37
     }
42
     }
38
 
43
 
44
+    public Pattern createRegexPattern(String regex) {
45
+        return Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
46
+    }
47
+
48
+    public Matcher createMatcherFromInput(Pattern pattern, String input) {
49
+        return pattern.matcher(input);
50
+    }
51
+
52
+    public String findReplace(Matcher matcher, String replace) {
53
+        return matcher.replaceAll(replace);
54
+    }
39
 }
55
 }

+ 41
- 4
src/test/java/HamletParserTest.java View File

1
 import org.junit.Before;
1
 import org.junit.Before;
2
 import org.junit.Test;
2
 import org.junit.Test;
3
 
3
 
4
+import java.util.regex.Matcher;
5
+import java.util.regex.Pattern;
6
+
4
 import static org.junit.Assert.*;
7
 import static org.junit.Assert.*;
5
 
8
 
6
 public class HamletParserTest {
9
 public class HamletParserTest {
14
     }
17
     }
15
 
18
 
16
     @Test
19
     @Test
17
-    public void testChangeHamletToLeon() {
20
+    public void testChangeHamletToDolio() {
21
+        String input = "HamletHoratioHamletHoratio";
22
+        String find = "Hamlet";
23
+        String replace = "Dolio";
24
+        Pattern pattern = hamletParser.createRegexPattern(find);
25
+        Matcher matcher = hamletParser.createMatcherFromInput(pattern, input);
26
+        String actual = hamletParser.findReplace(matcher, replace);
27
+        String expected = "DolioHoratioDolioHoratio";
28
+        assertEquals(expected, actual);
18
     }
29
     }
19
 
30
 
20
     @Test
31
     @Test
21
-    public void testChangeHoratioToTariq() {
32
+    public void testChangeHoratioToFroilan() {
33
+        String input = "HamletHoratioHamletHoratio";
34
+        String find = "Horatio";
35
+        String replace = "Froilan";
36
+        Pattern pattern = hamletParser.createRegexPattern(find);
37
+        Matcher matcher = hamletParser.createMatcherFromInput(pattern, input);
38
+        String actual = hamletParser.findReplace(matcher, replace);
39
+        String expected = "HamletFroilanHamletFroilan";
40
+        assertEquals(expected, actual);
22
     }
41
     }
23
 
42
 
24
     @Test
43
     @Test
25
-    public void testFindHoratio() {
44
+    public void testCreateHoratioPattern() {
45
+        String expected = "Horatio";
46
+        Pattern pattern = hamletParser.createRegexPattern(expected);
47
+        String actual = pattern.toString();
48
+        assertEquals(expected, actual);
26
     }
49
     }
27
 
50
 
28
     @Test
51
     @Test
29
-    public void testFindHamlet() {
52
+    public void testCreateHamletPattern() {
53
+        String expected = "Hamlet";
54
+        Pattern pattern = hamletParser.createRegexPattern(expected);
55
+        String actual = pattern.toString();
56
+        assertEquals(expected, actual);
30
     }
57
     }
58
+
59
+    @Test
60
+    public void testCreateMatcherFromInput(){
61
+        String input = "HamletHoratioHamletHoratio";
62
+        Pattern pattern = hamletParser.createRegexPattern("Hamlet");
63
+        Matcher matcher = hamletParser.createMatcherFromInput(pattern, input);
64
+        boolean actual = matcher instanceof Matcher;
65
+        assertTrue(actual);
66
+    }
67
+
31
 }
68
 }

+ 5383
- 0
target/classes/hamlet.txt
File diff suppressed because it is too large
View File