Learn to split a CSV (comma-separated value) and store the tokens in an array or List in Java using simple and easy-to-follow examples.
1. Split CSV with Regular Expression
We can use a regular expression "\\s*,\\s*"
to match commas in CSV string and then use String.split() method to convert string to an array of tokens.
String blogName = "how, to, do, in, java";
String[] tokenArray = blogName.split("\\s*,\\s*");
Assertions.assertArrayEquals(new String[]{"how", "to", "do", "in", "java"}, tokenArray);
Note that the rex takes care of extra unwanted spaces in the String and only tokenizes the proper strings. In the following example, notice the unwanted multiple spaces between the commas.
Assertions.assertArrayEquals(new String[]{"a", "b", "c"}, "a, b,c".split("\\s*,\\s*"));
Assertions.assertArrayEquals(new String[]{"a", "b", "c"}, "a, b, c".split("\\s*,\\s*"));
3. Convert Array to List
To get the List of tokens, we can pass the array to Arrays.asList() method that returns a fixed-size, unmodifiable read-only list backed by the array.
String[] tokenArray = blogName.split("\\s*,\\s*");
List<String> tokenList = Arrays.asList(tokenArray);
To get the mutable ArrayList, copy all elements from the read-only list received from the above example into a new ArrayList object.
ArrayList<String> tokenArrayList = new ArrayList(Arrays.asList(tokenArray));
3. Convert a List to CSV String
If we want to convert a List to CSV, then we can use String.join() method provided by Java 8.
List<String> list = Arrays.asList("how", "to", "do", "in", "java");
String result = String.join(",", list); //delimited by comma
Assertions.assertEquals("how,to,do,in,java", result);
Above examples will help to convert CSV to List and List to CSV in Java.
Happy Learning !!
Read More:
- Read/Write CSV file with OpenCSV
- Read/Write CSV file with SuperCSV
- 3 examples of parsing CSV files
- Join String in Java 8