From 8059f7a92c9396cb5864ca9c1174a2d275a524c5 Mon Sep 17 00:00:00 2001 From: Azhwani <13301425+azhwani@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:48:20 +0100 Subject: [PATCH] BAEL-7514: Get first n characters in a String in Java (#15817) --- .../core-java-string-operations-8/pom.xml | 10 +++- .../firstnchars/FirstNCharactersUnitTest.java | 58 +++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/firstnchars/FirstNCharactersUnitTest.java diff --git a/core-java-modules/core-java-string-operations-8/pom.xml b/core-java-modules/core-java-string-operations-8/pom.xml index 0a8a194109..4e155a9851 100644 --- a/core-java-modules/core-java-string-operations-8/pom.xml +++ b/core-java-modules/core-java-string-operations-8/pom.xml @@ -12,13 +12,18 @@ core-java-modules 0.0.1-SNAPSHOT + org.apache.commons commons-lang3 ${apache.commons.lang3.version} - + + com.google.guava + guava + ${guava.version} + @@ -38,6 +43,7 @@ 11 11 3.14.0 + 33.0.0-jre - \ No newline at end of file + diff --git a/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/firstnchars/FirstNCharactersUnitTest.java b/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/firstnchars/FirstNCharactersUnitTest.java new file mode 100644 index 0000000000..24c6998d92 --- /dev/null +++ b/core-java-modules/core-java-string-operations-8/src/test/java/com/baeldung/firstnchars/FirstNCharactersUnitTest.java @@ -0,0 +1,58 @@ +package com.baeldung.firstnchars; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.Test; + +import com.google.common.base.Ascii; + +class FirstNCharactersUnitTest { + + @Test + void givenString_whenUsingSubstringMethod_thenGetFirstChars() { + String givenInput = "Hello Baeldung Readers"; + + assertEquals("He", givenInput.substring(0, 2)); + } + + @Test + void givenString_whenUsingSubSequenceMethod_thenGetFirstChars() { + String givenInput = "Welcome"; + + assertEquals("Wel", givenInput.subSequence(0, 3)); + } + + @Test + void givenString_whenUsingStreamApi_thenGetFirstChars() { + String givenInput = "The world is beautiful"; + String result = givenInput.chars() + .limit(3) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + + assertEquals("The", result); + } + + @Test + void givenString_whenUsingStringUtilsSubstringMethod_thenGetFirstChars() { + String givenInput = "Baeldung"; + + assertEquals("Baeld", StringUtils.substring(givenInput, 0, 5)); + } + + @Test + void givenString_whenUsingStringUtilsLeftMethod_thenGetFirstChars() { + String givenInput = "kindness always wins"; + + assertEquals("kind", StringUtils.left(givenInput, 4)); + } + + @Test + void givenString_whenUsingGuavaTruncateMethod_thenGetFirstChars() { + String givenInput = "Tamassint"; + + assertEquals("Tama", Ascii.truncate(givenInput, 4, "")); + } + +}