ソースを参照

pig-latin: convert to use instance methods

Stuart Kent 9 年 前
コミット
9b27ec28cb
共有2 個のファイルを変更した12 個の追加13 個の削除を含む
  1. 8
    8
      exercises/pig-latin/src/example/java/PigLatinTranslator.java
  2. 4
    5
      exercises/pig-latin/src/test/java/PigLatinTranslatorTest.java

exercises/pig-latin/src/example/java/PigLatin.java → exercises/pig-latin/src/example/java/PigLatinTranslator.java ファイルの表示

2
 import java.util.List;
2
 import java.util.List;
3
 import java.util.stream.Collectors;
3
 import java.util.stream.Collectors;
4
 
4
 
5
-public class PigLatin {
5
+public class PigLatinTranslator {
6
 
6
 
7
     public static final String AY = "ay";
7
     public static final String AY = "ay";
8
     public static final String THR = "thr";
8
     public static final String THR = "thr";
15
     public static final String YT = "yt";
15
     public static final String YT = "yt";
16
     public static final String VOWELS_REGEX = "[aeiou]";
16
     public static final String VOWELS_REGEX = "[aeiou]";
17
 
17
 
18
-    public static String translate(String sentence) {
18
+    public String translate(String sentence) {
19
         List<String> translatedWords = Arrays.asList(sentence.split(" "))
19
         List<String> translatedWords = Arrays.asList(sentence.split(" "))
20
                 .stream()
20
                 .stream()
21
                 .map(x -> translateWord(x))
21
                 .map(x -> translateWord(x))
24
         return String.join(" ", translatedWords);
24
         return String.join(" ", translatedWords);
25
     }
25
     }
26
 
26
 
27
-    private static String translateWord(String word) {
27
+    private String translateWord(String word) {
28
         if (wordStartsWithVowelLike(word)) {
28
         if (wordStartsWithVowelLike(word)) {
29
             return word + AY;
29
             return word + AY;
30
         }
30
         }
44
         return word.substring(1) + word.toCharArray()[0] + AY;
44
         return word.substring(1) + word.toCharArray()[0] + AY;
45
     }
45
     }
46
 
46
 
47
-    private static boolean wordStartsWithVowelLike(String word) {
47
+    private boolean wordStartsWithVowelLike(String word) {
48
         return word.startsWith(YT) || word.startsWith(XR) || word.substring(0, 1).matches(VOWELS_REGEX);
48
         return word.startsWith(YT) || word.startsWith(XR) || word.substring(0, 1).matches(VOWELS_REGEX);
49
     }
49
     }
50
 
50
 
51
-    private static boolean wordStartsWithPrefixes(String word, String... prefixes) {
52
-        return Arrays.asList(prefixes).stream()
53
-                .anyMatch(x -> word.startsWith(x));
51
+    private boolean wordStartsWithPrefixes(String word, String... prefixes) {
52
+        return Arrays.stream(prefixes)
53
+                .anyMatch(word::startsWith);
54
     }
54
     }
55
 
55
 
56
-    private static boolean wordStartsWithConsonantAndQu(String word) {
56
+    private boolean wordStartsWithConsonantAndQu(String word) {
57
         return word.substring(1).startsWith(QU);
57
         return word.substring(1).startsWith(QU);
58
     }
58
     }
59
 }
59
 }

exercises/pig-latin/src/test/java/PigLatinTest.java → exercises/pig-latin/src/test/java/PigLatinTranslatorTest.java ファイルの表示

1
 import org.junit.Test;
1
 import org.junit.Test;
2
-import org.junit.Ignore;
3
 import org.junit.runner.RunWith;
2
 import org.junit.runner.RunWith;
4
 import org.junit.runners.Parameterized;
3
 import org.junit.runners.Parameterized;
5
 
4
 
9
 import static org.junit.Assert.assertEquals;
8
 import static org.junit.Assert.assertEquals;
10
 
9
 
11
 @RunWith(Parameterized.class)
10
 @RunWith(Parameterized.class)
12
-public class PigLatinTest {
11
+public class PigLatinTranslatorTest {
13
 
12
 
14
     private String englishPhrase;
13
     private String englishPhrase;
15
     private String pigLatinTranslation;
14
     private String pigLatinTranslation;
59
         });
58
         });
60
     }
59
     }
61
 
60
 
62
-    public PigLatinTest(String englishPhrase, String pigLatinTranslation) {
61
+    public PigLatinTranslatorTest(String englishPhrase, String pigLatinTranslation) {
63
         this.englishPhrase = englishPhrase;
62
         this.englishPhrase = englishPhrase;
64
         this.pigLatinTranslation = pigLatinTranslation;
63
         this.pigLatinTranslation = pigLatinTranslation;
65
     }
64
     }
66
 
65
 
67
-
68
     @Test
66
     @Test
69
     public void test() {
67
     public void test() {
70
-        assertEquals(pigLatinTranslation, PigLatin.translate(englishPhrase));
68
+        assertEquals(pigLatinTranslation, new PigLatinTranslator().translate(englishPhrase));
71
     }
69
     }
70
+
72
 }
71
 }