Posted In: Java Core, String
How to read and parse CSV file using Guava Splitter
Splitting a comma-separated string but ignoring commas in quotes
Maven guava
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version> </dependency>
Guava Splitter
import com.google.common.base.Splitter;
Works only without commas in quotes data
@Test // Works only without commas in quotes data public void guavasplitter1() throws Exception { System.out.println("\nguavasplitter1 started"); try { String line = "3MINDIA,EQ,14450,14900,868,INE470,A01017"; Splitter splitter = Splitter.on(','); List<String> list = splitter.splitToList(line); System.out.println(list); } catch (Exception e) { e.printStackTrace(); } }
Works with commas in quotes data
@Test // Works only with commas in quotes data public void guavasplitter2() throws Exception { System.out.println("\nguavasplitter2 started"); try { String line = "\"3MIN,DIA\",EQ,14450,14900,868,\"INE470,A01017\""; Pattern pattern = Pattern.compile(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"); Splitter splitter = Splitter.on(pattern); List<String> list = splitter.splitToList(line); System.out.println(list); } catch (Exception e) { e.printStackTrace(); } }
Tags: CSV
- Apache (13)
- Build Tools (2)
- Gradle (2)
- Caching (1)
- cpanel (1)
- cURL (1)
- Database (7)
- Hibernate (5)
- Java Core (38)
- Java Script (15)
- Bootstrap (1)
- File Upload (7)
- jQuery (3)
- React (3)
- JEE (13)
- JSON (41)
- GSON (13)
- Jackson 1X (1)
- Jackson 2X (12)
- jsoniter (1)
- Logging (2)
- Apache Commons Logging (1)
- Apache Log4J (1)
- Logback (1)
- SLF4J (1)
- MongoDB (1)
- OS (1)
- Linux (1)
- Security (5)
- Server (4)
- Tomcat (4)
- Service (2)
- Micro (2)
- Spring (46)
- Pattern (2)
- Spring Boot (20)
- Spring Data (4)
- Spring MVC (8)
- Spring REST (13)
- Spring Security (7)
- Testing (11)
- XML (5)
- JDOM XML Parser (1)