From 30d09bdc450b1a49f83383407cb8bc1865ae954f Mon Sep 17 00:00:00 2001 From: panos-kakos <102670093+panos-kakos@users.noreply.github.com> Date: Mon, 22 Apr 2024 00:29:58 +0300 Subject: [PATCH] [JAVA-33592] Created new module core-java-string-operations-9 and moved code from core-java-string-operations-7 (#16364) --- .../core-java-string-operations-2/README.md | 2 +- .../core-java-string-operations-3/README.md | 2 + .../core-java-string-operations-4/README.md | 1 + .../core-java-string-operations-5/README.md | 1 + .../core-java-string-operations-6/README.md | 1 + .../core-java-string-operations-7/README.md | 7 +- .../core-java-string-operations-7/pom.xml | 29 +------ .../core-java-string-operations-8/README.md | 4 + .../core-java-string-operations-9/README.md | 9 +++ .../core-java-string-operations-9/pom.xml | 70 +++++++++++++++++ .../com/baeldung/morse/MorseTranslator.java | 0 .../unicode/UnicodeLetterChecker.java | 0 ...tainsInvalidEncodedCharactersUnitTest.java | 66 ++++++++-------- .../StringIsEmptyVsIsBlankUnitTest.java | 0 .../morse/MorseTranslatorUnitTest.java | 0 .../ReplaceNonPrintableCharsUnitTest.java | 78 +++++++++---------- .../unicode/UnicodeLetterCheckerUnitTest.java | 0 .../UTF8ValidationUnitTest.java | 0 core-java-modules/pom.xml | 1 + 19 files changed, 164 insertions(+), 107 deletions(-) create mode 100644 core-java-modules/core-java-string-operations-9/README.md create mode 100644 core-java-modules/core-java-string-operations-9/pom.xml rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/main/java/com/baeldung/morse/MorseTranslator.java (100%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/main/java/com/baeldung/unicode/UnicodeLetterChecker.java (100%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java (96%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/isemptyvsisblank/StringIsEmptyVsIsBlankUnitTest.java (100%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/morse/MorseTranslatorUnitTest.java (100%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java (97%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/unicode/UnicodeLetterCheckerUnitTest.java (100%) rename core-java-modules/{core-java-string-operations-7 => core-java-string-operations-9}/src/test/java/com/baeldung/utf8validation/UTF8ValidationUnitTest.java (100%) diff --git a/core-java-modules/core-java-string-operations-2/README.md b/core-java-modules/core-java-string-operations-2/README.md index 871b5525cd..d24c9c5f85 100644 --- a/core-java-modules/core-java-string-operations-2/README.md +++ b/core-java-modules/core-java-string-operations-2/README.md @@ -13,4 +13,4 @@ This module contains articles about string operations. - [Encode a String to UTF-8 in Java](https://www.baeldung.com/java-string-encode-utf-8) - [Guide to Character Encoding](https://www.baeldung.com/java-char-encoding) - [Convert Hex to ASCII in Java](https://www.baeldung.com/java-convert-hex-to-ascii) -- More articles: [[<-- prev]](../core-java-string-operations) +- More articles: [[<-- prev]](../core-java-string-operations) [[next -->]](../core-java-string-operations-3) diff --git a/core-java-modules/core-java-string-operations-3/README.md b/core-java-modules/core-java-string-operations-3/README.md index b22cf56e3a..0bd06d4996 100644 --- a/core-java-modules/core-java-string-operations-3/README.md +++ b/core-java-modules/core-java-string-operations-3/README.md @@ -10,3 +10,5 @@ - [Remove Beginning and Ending Double Quotes from a String](https://www.baeldung.com/java-remove-start-end-double-quote) - [Splitting a Java String by Multiple Delimiters](https://www.baeldung.com/java-string-split-multiple-delimiters) - [Split a String Only on the First Occurrence of Delimiter](https://www.baeldung.com/java-split-string-first-delimiter) +- More articles: [[<-- prev]](../core-java-string-operations-2) [[next -->]](../core-java-string-operations-4) + diff --git a/core-java-modules/core-java-string-operations-4/README.md b/core-java-modules/core-java-string-operations-4/README.md index a3106e157b..a44a69b6fc 100644 --- a/core-java-modules/core-java-string-operations-4/README.md +++ b/core-java-modules/core-java-string-operations-4/README.md @@ -10,3 +10,4 @@ - [How to Truncate a String in Java](https://www.baeldung.com/java-truncating-strings) - [Remove Whitespace From a String in Java](https://www.baeldung.com/java-string-remove-whitespace) - [Named Placeholders in String Formatting](https://www.baeldung.com/java-string-formatting-named-placeholders) +- More articles: [[<-- prev]](../core-java-string-operations-3) [[next -->]](../core-java-string-operations-5) diff --git a/core-java-modules/core-java-string-operations-5/README.md b/core-java-modules/core-java-string-operations-5/README.md index dffd3c1ab6..09d06ef3b9 100644 --- a/core-java-modules/core-java-string-operations-5/README.md +++ b/core-java-modules/core-java-string-operations-5/README.md @@ -11,3 +11,4 @@ - [Check if the First Letter of a String Is a Number](https://www.baeldung.com/java-check-if-string-starts-with-number) - [Print “” Quotes Around a String in Java](https://www.baeldung.com/java-string-print-quotes) - [Remove Punctuation From a String in Java](https://www.baeldung.com/java-remove-punctuation-from-string) +- More articles: [[<-- prev]](../core-java-string-operations-4) [[next -->]](../core-java-string-operations-6) diff --git a/core-java-modules/core-java-string-operations-6/README.md b/core-java-modules/core-java-string-operations-6/README.md index 506b548304..bf1d512295 100644 --- a/core-java-modules/core-java-string-operations-6/README.md +++ b/core-java-modules/core-java-string-operations-6/README.md @@ -11,3 +11,4 @@ - [Check if a String Has All Unique Characters in Java](https://www.baeldung.com/java-check-string-all-unique-chars) - [Performance Comparison Between Different Java String Concatenation Methods](https://www.baeldung.com/java-string-concatenation-methods) - [Replacing Single Quote with \’ in Java String](https://www.baeldung.com/java-replacing-single-quote-string) +- More articles: [[<-- prev]](../core-java-string-operations-5) [[next -->]](../core-java-string-operations-7) diff --git a/core-java-modules/core-java-string-operations-7/README.md b/core-java-modules/core-java-string-operations-7/README.md index 7264c3d945..97249b1a8b 100644 --- a/core-java-modules/core-java-string-operations-7/README.md +++ b/core-java-modules/core-java-string-operations-7/README.md @@ -2,17 +2,12 @@ ### Relevant Articles: - [How to Center Text Output in Java](https://www.baeldung.com/java-center-text-output) - [Capitalize the First Letter of Each Word in a String](https://www.baeldung.com/java-string-initial-capital-letter-every-word) -- [Check if a String Contains Only Unicode Letters](https://www.baeldung.com/java-string-all-unicode-characters) - [Create a “Mutable” String in Java](https://www.baeldung.com/java-mutable-string) - [Check if a String Contains a Number Value in Java](https://www.baeldung.com/java-string-number-presence) -- [Difference Between String isEmpty() and isBlank()](https://www.baeldung.com/java-string-isempty-vs-isblank) - [String’s Maximum Length in Java](https://www.baeldung.com/java-strings-maximum-length) - [Java’s String.length() and String.getBytes().length](https://www.baeldung.com/java-string-length-vs-getbytes-length) -- [Replace Non-Printable Unicode Characters in Java](https://www.baeldung.com/java-replace-non-printable-unicode-characters) - [Check If a Java StringBuilder Object Contains a Character](https://www.baeldung.com/java-check-stringbuilder-object-contains-character) - [Comparing One String With Multiple Values in One Expression in Java](https://www.baeldung.com/java-compare-string-multiple-values-one-expression) -- [UTF-8 Validation in Java](https://www.baeldung.com/java-utf-8-validation) -- [Simple Morse Code Translation in Java](https://www.baeldung.com/java-morse-code-english-translate) -- [How to Determine if a String Contains Invalid Encoded Characters](https://www.baeldung.com/java-check-string-contains-invalid-encoded-characters) - [Regular Expression for Password Validation in Java](https://www.baeldung.com/java-regex-password-validation) - [Mask an Email Address and Phone Number in Java](https://www.baeldung.com/java-mask-email-address-phone-number) +- More articles: [[<-- prev]](../core-java-string-operations-6) [[next -->]](../core-java-string-operations-8) diff --git a/core-java-modules/core-java-string-operations-7/pom.xml b/core-java-modules/core-java-string-operations-7/pom.xml index 19d9b39e3f..d3d9f92514 100644 --- a/core-java-modules/core-java-string-operations-7/pom.xml +++ b/core-java-modules/core-java-string-operations-7/pom.xml @@ -24,36 +24,10 @@ commons-text ${commons-text.version} - - org.apache.tika - tika-core - ${apache.tika.version} - - - org.apache.tika - tika-parsers-standard-package - ${apache.tika.version} - - - com.ibm.icu - icu4j - ${icu4j.version} - org.apache.commons commons-collections4 ${apache.commons.collection.version} - - - org.junit.jupiter - junit-jupiter - 5.8.1 - test - - - junit - junit - 4.13.2 @@ -71,8 +45,7 @@ - 11 - 11 + 3.13.0 4.4 2.9.1 diff --git a/core-java-modules/core-java-string-operations-8/README.md b/core-java-modules/core-java-string-operations-8/README.md index 54c50b7825..22b54ad5fd 100644 --- a/core-java-modules/core-java-string-operations-8/README.md +++ b/core-java-modules/core-java-string-operations-8/README.md @@ -10,3 +10,7 @@ - [Converting UTF-8 to ISO-8859-1 in Java](https://www.baeldung.com/java-utf-8-iso-8859-1-conversion) - [Get Last n Characters From a String](https://www.baeldung.com/java-string-get-last-n-characters) - [Find the Length of the Longest Symmetric Substring](https://www.baeldung.com/java-find-length-longest-symmetric-substring) +- More articles: [[<-- prev]](../core-java-string-operations-7) [[next -->]](../core-java-string-operations-9) + + + diff --git a/core-java-modules/core-java-string-operations-9/README.md b/core-java-modules/core-java-string-operations-9/README.md new file mode 100644 index 0000000000..aab4178988 --- /dev/null +++ b/core-java-modules/core-java-string-operations-9/README.md @@ -0,0 +1,9 @@ + +### Relevant Articles: +- [Check if a String Contains Only Unicode Letters](https://www.baeldung.com/java-string-all-unicode-characters) +- [Difference Between String isEmpty() and isBlank()](https://www.baeldung.com/java-string-isempty-vs-isblank) +- [Replace Non-Printable Unicode Characters in Java](https://www.baeldung.com/java-replace-non-printable-unicode-characters) +- [UTF-8 Validation in Java](https://www.baeldung.com/java-utf-8-validation) +- [Simple Morse Code Translation in Java](https://www.baeldung.com/java-morse-code-english-translate) +- [How to Determine if a String Contains Invalid Encoded Characters](https://www.baeldung.com/java-check-string-contains-invalid-encoded-characters) +- More articles: [[<-- prev]](../core-java-string-operations-8) diff --git a/core-java-modules/core-java-string-operations-9/pom.xml b/core-java-modules/core-java-string-operations-9/pom.xml new file mode 100644 index 0000000000..55b0925df1 --- /dev/null +++ b/core-java-modules/core-java-string-operations-9/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + core-java-string-operations-9 + jar + core-java-string-operations-9 + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + org.apache.commons + commons-lang3 + ${apache.commons.lang3.version} + + + org.apache.commons + commons-text + ${commons-text.version} + + + org.apache.tika + tika-core + ${apache.tika.version} + + + org.apache.tika + tika-parsers-standard-package + ${apache.tika.version} + + + com.ibm.icu + icu4j + ${icu4j.version} + + + org.apache.commons + commons-collections4 + ${apache.commons.collection.version} + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compiler.source} + ${maven.compiler.target} + + + + + + + 3.13.0 + 4.4 + 2.9.1 + 1.10.0 + 74.1 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-string-operations-7/src/main/java/com/baeldung/morse/MorseTranslator.java b/core-java-modules/core-java-string-operations-9/src/main/java/com/baeldung/morse/MorseTranslator.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/main/java/com/baeldung/morse/MorseTranslator.java rename to core-java-modules/core-java-string-operations-9/src/main/java/com/baeldung/morse/MorseTranslator.java diff --git a/core-java-modules/core-java-string-operations-7/src/main/java/com/baeldung/unicode/UnicodeLetterChecker.java b/core-java-modules/core-java-string-operations-9/src/main/java/com/baeldung/unicode/UnicodeLetterChecker.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/main/java/com/baeldung/unicode/UnicodeLetterChecker.java rename to core-java-modules/core-java-string-operations-9/src/main/java/com/baeldung/unicode/UnicodeLetterChecker.java diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java similarity index 96% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java index 249587b56a..0056128042 100644 --- a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java +++ b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/checkifstringcontainsinvalidcharacters/CheckIfStringContainsInvalidEncodedCharactersUnitTest.java @@ -1,33 +1,33 @@ -package com.baeldung.checkifstringcontainsinvalidcharacters; - -import org.junit.jupiter.api.Test; - -import java.nio.charset.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertTrue; - -public class CheckIfStringContainsInvalidEncodedCharactersUnitTest { - - public String input = "HÆllo, World!"; - - @Test - public void givenInputString_whenUsingRegexPattern_thenFindIfInvalidCharacters() { - String regexPattern = "[^\\x00-\\x7F]+"; - Pattern pattern = Pattern.compile(regexPattern); - Matcher matcher = pattern.matcher(input); - assertTrue(matcher.find()); - } - - @Test - public void givenInputString_whenUsingStringEncoding_thenFindIfInvalidCharacters() { - byte[] bytes = input.getBytes(StandardCharsets.UTF_8); - boolean found = false; - for (byte b : bytes) { - found = (b & 0xFF) > 127 ? true : found; - } - assertTrue(found); - } -} +package com.baeldung.checkifstringcontainsinvalidcharacters; + +import org.junit.jupiter.api.Test; + +import java.nio.charset.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class CheckIfStringContainsInvalidEncodedCharactersUnitTest { + + public String input = "HÆllo, World!"; + + @Test + public void givenInputString_whenUsingRegexPattern_thenFindIfInvalidCharacters() { + String regexPattern = "[^\\x00-\\x7F]+"; + Pattern pattern = Pattern.compile(regexPattern); + Matcher matcher = pattern.matcher(input); + assertTrue(matcher.find()); + } + + @Test + public void givenInputString_whenUsingStringEncoding_thenFindIfInvalidCharacters() { + byte[] bytes = input.getBytes(StandardCharsets.UTF_8); + boolean found = false; + for (byte b : bytes) { + found = (b & 0xFF) > 127 ? true : found; + } + assertTrue(found); + } +} diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/isemptyvsisblank/StringIsEmptyVsIsBlankUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/isemptyvsisblank/StringIsEmptyVsIsBlankUnitTest.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/isemptyvsisblank/StringIsEmptyVsIsBlankUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/isemptyvsisblank/StringIsEmptyVsIsBlankUnitTest.java diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/morse/MorseTranslatorUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/morse/MorseTranslatorUnitTest.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/morse/MorseTranslatorUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/morse/MorseTranslatorUnitTest.java diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java similarity index 97% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java index 47a373cd70..fe038aa8d9 100644 --- a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java +++ b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/replacenonprintablecharacters/ReplaceNonPrintableCharsUnitTest.java @@ -1,39 +1,39 @@ -package com.baeldung.replacenonprintablecharacters; - -import org.junit.jupiter.api.Test; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class ReplaceNonPrintableCharsUnitTest { - @Test - public void givenTextWithNonPrintableChars_whenUsingRegularExpression_thenGetSanitizedText() { - String originalText = "\n\nWelcome \n\n\n\tto Baeldung!\n\t"; - String expected = "Welcome to Baeldung!"; - String regex = "[\\p{C}]"; - - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(originalText); - String sanitizedText = matcher.replaceAll(""); - - assertEquals(expected, sanitizedText); - } - - @Test - public void givenTextWithNonPrintableChars_whenCustomImplementation_thenGetSanitizedText() { - String originalText = "\n\nWelcome \n\n\n\tto Baeldung!\n\t"; - String expected = "Welcome to Baeldung!"; - - StringBuilder strBuilder = new StringBuilder(); - originalText.codePoints().forEach((i) -> { - if (i >= 32 && i != 127) { - strBuilder.append(Character.toChars(i)); - } - }); - - assertEquals(expected, strBuilder.toString()); - } - -} +package com.baeldung.replacenonprintablecharacters; + +import org.junit.jupiter.api.Test; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ReplaceNonPrintableCharsUnitTest { + @Test + public void givenTextWithNonPrintableChars_whenUsingRegularExpression_thenGetSanitizedText() { + String originalText = "\n\nWelcome \n\n\n\tto Baeldung!\n\t"; + String expected = "Welcome to Baeldung!"; + String regex = "[\\p{C}]"; + + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(originalText); + String sanitizedText = matcher.replaceAll(""); + + assertEquals(expected, sanitizedText); + } + + @Test + public void givenTextWithNonPrintableChars_whenCustomImplementation_thenGetSanitizedText() { + String originalText = "\n\nWelcome \n\n\n\tto Baeldung!\n\t"; + String expected = "Welcome to Baeldung!"; + + StringBuilder strBuilder = new StringBuilder(); + originalText.codePoints().forEach((i) -> { + if (i >= 32 && i != 127) { + strBuilder.append(Character.toChars(i)); + } + }); + + assertEquals(expected, strBuilder.toString()); + } + +} diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/unicode/UnicodeLetterCheckerUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/unicode/UnicodeLetterCheckerUnitTest.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/unicode/UnicodeLetterCheckerUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/unicode/UnicodeLetterCheckerUnitTest.java diff --git a/core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/utf8validation/UTF8ValidationUnitTest.java b/core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/utf8validation/UTF8ValidationUnitTest.java similarity index 100% rename from core-java-modules/core-java-string-operations-7/src/test/java/com/baeldung/utf8validation/UTF8ValidationUnitTest.java rename to core-java-modules/core-java-string-operations-9/src/test/java/com/baeldung/utf8validation/UTF8ValidationUnitTest.java diff --git a/core-java-modules/pom.xml b/core-java-modules/pom.xml index 7680701382..4e9fb0abde 100644 --- a/core-java-modules/pom.xml +++ b/core-java-modules/pom.xml @@ -205,6 +205,7 @@ core-java-string-operations-6 core-java-string-operations-7 core-java-string-operations-8 + core-java-string-operations-9 core-java-regex core-java-regex-2 core-java-regex-3