diff --git a/src/main/java/AsciiStringFilter.java b/src/main/java/AsciiStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..57b3ae7464fd22aaa577798aeb9b44d00c01333b --- /dev/null +++ b/src/main/java/AsciiStringFilter.java @@ -0,0 +1,13 @@ +public class AsciiStringFilter implements StringFilter { + + @Override + public String filter(String string) { + StringBuilder sb = new StringBuilder(); + for (char c : string.toCharArray()) { + if ((int) c < 128) { + sb.append(c); + } + } + return sb.toString(); + } +} diff --git a/src/main/java/CompositeStringFilter.java b/src/main/java/CompositeStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..af171e4fa9aff1ebbc3bbc7e4796a7befc094a3a --- /dev/null +++ b/src/main/java/CompositeStringFilter.java @@ -0,0 +1,17 @@ +public class CompositeStringFilter implements StringFilter { + + private StringFilter[] filters; + + public CompositeStringFilter(StringFilter... filters) { + this.filters = filters; + } + + @Override + public String filter(String string) { + String result = string; + for (StringFilter filter : filters) { + result = filter.filter(result); + } + return result; + } +} diff --git a/src/main/java/LowerCaseStringFilter.java b/src/main/java/LowerCaseStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..ce0133611ef569b4293e6f3556620fe8b68c960d --- /dev/null +++ b/src/main/java/LowerCaseStringFilter.java @@ -0,0 +1,7 @@ +public class LowerCaseStringFilter implements StringFilter { + + @Override + public String filter(String string) { + return string.toLowerCase(); + } +} diff --git a/src/main/java/PostfixStringFilter.java b/src/main/java/PostfixStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..1c51f015dde871a6487ecc0b5824cbd6091c839e --- /dev/null +++ b/src/main/java/PostfixStringFilter.java @@ -0,0 +1,13 @@ +public class PostfixStringFilter implements StringFilter { + + private int n; + + public PostfixStringFilter(int n) { + this.n = n; + } + + @Override + public String filter(String string) { + return string.length() > n ? string.substring(string.length() - n) : string; + } +} diff --git a/src/main/java/PrefixStringFilter.java b/src/main/java/PrefixStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..6495ec86e63eabc39ebb0350a23daeb17af97539 --- /dev/null +++ b/src/main/java/PrefixStringFilter.java @@ -0,0 +1,13 @@ +public class PrefixStringFilter implements StringFilter { + + private int n; + + public PrefixStringFilter(int n) { + this.n = n; + } + + @Override + public String filter(String string) { + return string.length() > n ? string.substring(0, n) : string; + } +} diff --git a/src/main/java/StringFilter.java b/src/main/java/StringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..cf2fd35638121c0c20e4255b9042734235299c28 --- /dev/null +++ b/src/main/java/StringFilter.java @@ -0,0 +1,3 @@ +public interface StringFilter { + String filter(String string); +} diff --git a/src/main/java/StringFilterUtils.java b/src/main/java/StringFilterUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..2e170942e05ec0946cefd4e46281eadac6191a78 --- /dev/null +++ b/src/main/java/StringFilterUtils.java @@ -0,0 +1,10 @@ +public class StringFilterUtils { + + public static String[] filter(String[] strings, StringFilter filter) { + String[] result = new String[strings.length]; + for (int i = 0; i < strings.length; i++) { + result[i] = filter.filter(strings[i]); + } + return result; + } +} diff --git a/src/main/java/UpperCaseStringFilter.java b/src/main/java/UpperCaseStringFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..621b2b7762a23a38e843e98f454ba25bbd0c6983 --- /dev/null +++ b/src/main/java/UpperCaseStringFilter.java @@ -0,0 +1,7 @@ +public class UpperCaseStringFilter implements StringFilter { + + @Override + public String filter(String string) { + return string.toUpperCase(); + } +}