Преглед на файлове

Merge pull request #1163 from Zhiyuan-Amos/simplify

Simplify model answers #1119
FridaTveit преди 8 години
родител
ревизия
5a42c470d4
No account linked to committer's email

+ 8
- 10
exercises/acronym/.meta/src/reference/java/Acronym.java Целия файл

1
-import java.util.regex.Matcher;
2
-import java.util.regex.Pattern;
1
+import java.util.Arrays;
2
+import java.util.stream.Collectors;
3
 
3
 
4
 final class Acronym {
4
 final class Acronym {
5
 
5
 
13
         return acronym;
13
         return acronym;
14
     }
14
     }
15
 
15
 
16
-    private String generateAcronym(String phrase){
17
-        final Pattern BREAK_WORDS = Pattern.compile("[A-Z]+[a-z]*|[a-z]+");
18
-        final Matcher matcher = BREAK_WORDS.matcher(phrase);
19
-        final StringBuilder stringBuilder = new StringBuilder();
20
-        while (matcher.find()){
21
-            stringBuilder.append(matcher.group().charAt(0));
22
-        }
23
-        return stringBuilder.toString().toUpperCase();
16
+    private String generateAcronym(String phrase) {
17
+        return Arrays.stream(phrase.split("[^a-zA-Z]"))
18
+                .filter(word -> !word.isEmpty()) // Remove empty strings from the result of phrase.split
19
+                .map(word -> word.substring(0, 1)) // Get the first character of each word
20
+                .collect(Collectors.joining()) // Concatenate the characters
21
+                .toUpperCase();
24
     }
22
     }
25
 
23
 
26
 }
24
 }

+ 4
- 9
exercises/anagram/.meta/src/reference/java/Anagram.java Целия файл

1
 import java.util.*;
1
 import java.util.*;
2
+import java.util.stream.Collectors;
2
 
3
 
3
 class Anagram {
4
 class Anagram {
4
 
5
 
9
     }
10
     }
10
 
11
 
11
     List<String> match(List<String> candidates) {
12
     List<String> match(List<String> candidates) {
12
-        List<String> anagrams = new ArrayList<String>();
13
-
14
-        for (String candidate : candidates) {
15
-            if (anagramSubject.anagramOf(candidate)) {
16
-                anagrams.add(candidate);
17
-            }
18
-        }
19
-
20
-        return anagrams;
13
+        return candidates.stream()
14
+                .filter(anagramSubject::anagramOf)
15
+                .collect(Collectors.toList());
21
     }
16
     }
22
 
17
 
23
     static final class AnagramSubject {
18
     static final class AnagramSubject {

+ 2
- 10
exercises/atbash-cipher/.meta/src/reference/java/Atbash.java Целия файл

30
     }
30
     }
31
 
31
 
32
     private String stripInvalidCharacters(String input) {
32
     private String stripInvalidCharacters(String input) {
33
-        StringBuilder filteredValue = new StringBuilder(input.length());
34
-
35
-        for (char c : input.toCharArray()) {
36
-            if (Character.isLetterOrDigit(c)) {
37
-                filteredValue.append(c);
38
-            }
39
-        }
40
-
41
-        return filteredValue.toString();
33
+        return input.replaceAll("\\W", "");
42
     }
34
     }
43
 
35
 
44
     private char applyCipher(char input) {
36
     private char applyCipher(char input) {
51
         List<String> words = new ArrayList<>();
43
         List<String> words = new ArrayList<>();
52
 
44
 
53
         for (int i = 0; i < value.length(); i += GROUP_SIZE) {
45
         for (int i = 0; i < value.length(); i += GROUP_SIZE) {
54
-            words.add(i + GROUP_SIZE <= value.length() ? value.substring(i, i + GROUP_SIZE) : value.substring(i));
46
+            words.add(value.substring(i, Math.min(value.length(), i + GROUP_SIZE)));
55
         }
47
         }
56
 
48
 
57
         return String.join(" ", words);
49
         return String.join(" ", words);