From 132059bca1d8ae8fdaf3b3138683d37f82051ca9 Mon Sep 17 00:00:00 2001 From: badrr <badr.radellah@etu.univ-amu.fr> Date: Fri, 13 Sep 2024 18:12:48 +0200 Subject: [PATCH] TP1 final --- src/main/java/AsciiStringFilter.java | 13 +++++++++++++ src/main/java/CompositeStringFilter.java | 17 +++++++++++++++++ src/main/java/LowerCaseStringFilter.java | 7 +++++++ src/main/java/PostfixStringFilter.java | 13 +++++++++++++ src/main/java/PrefixStringFilter.java | 13 +++++++++++++ src/main/java/StringFilter.java | 3 +++ src/main/java/StringFilterUtils.java | 10 ++++++++++ src/main/java/UpperCaseStringFilter.java | 7 +++++++ 8 files changed, 83 insertions(+) create mode 100644 src/main/java/AsciiStringFilter.java create mode 100644 src/main/java/CompositeStringFilter.java create mode 100644 src/main/java/LowerCaseStringFilter.java create mode 100644 src/main/java/PostfixStringFilter.java create mode 100644 src/main/java/PrefixStringFilter.java create mode 100644 src/main/java/StringFilter.java create mode 100644 src/main/java/StringFilterUtils.java create mode 100644 src/main/java/UpperCaseStringFilter.java diff --git a/src/main/java/AsciiStringFilter.java b/src/main/java/AsciiStringFilter.java new file mode 100644 index 0000000..57b3ae7 --- /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 0000000..af171e4 --- /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 0000000..ce01336 --- /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 0000000..1c51f01 --- /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 0000000..6495ec8 --- /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 0000000..cf2fd35 --- /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 0000000..2e17094 --- /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 0000000..621b2b7 --- /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(); + } +} -- GitLab