From 7ab1e373569abb431e4127760b70fa08de1af127 Mon Sep 17 00:00:00 2001 From: Abhinab Kanrar Date: Fri, 7 Apr 2017 20:03:10 +0530 Subject: [PATCH] cusstom token (#1588) * rest with spark java * 4 * Update Application.java * indentation changes * spring @requestmapping shortcuts * removing spring requestmapping and pushing spring-mvc-java * Joining/Splitting Strings with Java and Stream API * adding more join/split functionality * changing package name * testcase change * adding webutils * adding testcase for WebUtils and ServletRequestUtils * adding testcase * spring-security-stormpath * adding ratpack module * adding pom.xml * adding following modules with updated testcase : DB, Filter, Json * adding spring-boot custom banner tutorial * changing banner format in plain text * Delete banner.txt~ * Delete b.txt~ * CORS in JAX-RS * ratpack with google guice * adding factory instance example * quick-guide-to-the-java-stringtokenizer * Update Application.java * Delete MovieCrudService.java~ * token customization * Update Application.java * adding csv test * adding csv test * Update Application.java * adding collection module --- .../baeldung/stringtokenizer/Application.java | 41 ++++++++++++++++--- core-java/src/main/resources/data.csv | 3 ++ .../stringtokenizer/ApplicationTest.java | 33 +++++++++++---- 3 files changed, 64 insertions(+), 13 deletions(-) create mode 100644 core-java/src/main/resources/data.csv 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); + } + }