diff --git a/core-java/src/main/java/com/baeldung/stringtokenizer/Application.java b/core-java/src/main/java/com/baeldung/stringtokenizer/Application.java index caa7ef06da..3fc169f1f7 100644 --- a/core-java/src/main/java/com/baeldung/stringtokenizer/Application.java +++ b/core-java/src/main/java/com/baeldung/stringtokenizer/Application.java @@ -1,6 +1,10 @@ package com.baeldung.stringtokenizer; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.StringTokenizer; @@ -8,14 +12,41 @@ public class Application { public List getTokens(String str) { List tokens = new ArrayList(); -// StringTokenizer tokenizer = new StringTokenizer( str ); - StringTokenizer tokenizer = new StringTokenizer( str , "," ); -// StringTokenizer tokenizer = new StringTokenizer( str , "," , true ); + // StringTokenizer tokenizer = new StringTokenizer( str ); + StringTokenizer tokenizer = new StringTokenizer(str, ","); + // StringTokenizer tokenizer = new StringTokenizer( str , "," , true ); while (tokenizer.hasMoreElements()) { - tokens.add( tokenizer.nextToken() ); -// tokens.add( tokenizer.nextToken( "," ) ); + tokens.add(tokenizer.nextToken()); + // tokens.add( tokenizer.nextToken("e") ); + } + int tokenLength = tokens.size(); + return tokens; + } + + public List getTokensWithCollection( String str ) { + StringTokenizer tokenizer = new StringTokenizer(str, ","); + List tokens = new ArrayList(); + Collections.list(tokenizer).forEach(token -> tokens.add((String) token)); + return tokens; + } + + public List getTokensFromFile(String path, String delim) { + List tokens = new ArrayList(); + String currLine = ""; + StringTokenizer tokenizer; + try (BufferedReader br = new BufferedReader( + new InputStreamReader(Application.class.getResourceAsStream("/" + path)))) { + while ((currLine = br.readLine()) != null) { + tokenizer = new StringTokenizer(currLine, delim); + while (tokenizer.hasMoreElements()) { + tokens.add(tokenizer.nextToken()); + } + } + } catch (IOException e) { + e.printStackTrace(); } return tokens; } + } diff --git a/core-java/src/main/resources/data.csv b/core-java/src/main/resources/data.csv new file mode 100644 index 0000000000..ec4ac10443 --- /dev/null +++ b/core-java/src/main/resources/data.csv @@ -0,0 +1,3 @@ +1|IND|India +2|MY|Malaysia +3|AU|Australia diff --git a/core-java/src/test/java/com/baeldung/stringtokenizer/ApplicationTest.java b/core-java/src/test/java/com/baeldung/stringtokenizer/ApplicationTest.java index 5e3df5b303..5d475d2fbb 100644 --- a/core-java/src/test/java/com/baeldung/stringtokenizer/ApplicationTest.java +++ b/core-java/src/test/java/com/baeldung/stringtokenizer/ApplicationTest.java @@ -11,20 +11,37 @@ import static org.junit.Assert.assertEquals; public class ApplicationTest { Application application = new Application(); - List expectedTokens = new ArrayList(); - + List expectedTokensForString = new ArrayList(); + List expectedTokensForFile = new ArrayList(); + @Before public void init() { - expectedTokens.add( "Welcome" ); - expectedTokens.add( "to" ); - expectedTokens.add( "baeldung.com" ); + expectedTokensForString.add("Welcome"); + expectedTokensForString.add("to"); + expectedTokensForString.add("baeldung.com"); + + expectedTokensForFile.add("1"); + expectedTokensForFile.add("IND"); + expectedTokensForFile.add("India"); + expectedTokensForFile.add("2"); + expectedTokensForFile.add("MY"); + expectedTokensForFile.add("Malaysia"); + expectedTokensForFile.add("3"); + expectedTokensForFile.add("AU"); + expectedTokensForFile.add("Australia"); } - + @Test public void givenString_thenGetListOfString() { String str = "Welcome,to,baeldung.com"; List actualTokens = application.getTokens(str); - assertEquals(expectedTokens, actualTokens); + assertEquals(expectedTokensForString, actualTokens); } - + + @Test + public void givenFile_thenGetListOfString() { + List actualTokens = application.getTokensFromFile("data.csv", "|"); + assertEquals(expectedTokensForFile, actualTokens); + } + }