- 浏览: 77986 次
- 性别:
- 来自: 广州
文章分类
最新评论
import java.util.ArrayList; public class CsvParser { public static final String SEPARATOR = ","; public static final char QUOTE = '"'; // parse the csv line into an ArrayList of values public static ArrayList parse(String line) throws Exception { ArrayList list = null; if (line == null) { // return null if input line is null } else { list = new ArrayList(); if (line.length() == 0) { // return an empty line if the input is an empty line list.add(line); } else { StringBuffer sb = new StringBuffer(); String[] a = line.split(SEPARATOR); for (int i=0; i<a.length; i++) { sb.append(a[i]); // count the no. of double quote int count = 0; for (int m=0; m<sb.length(); m++) { if (sb.charAt(m) == QUOTE) { count++; } } if (count > 0) { // has double-quote if (count % 2 == 0) { // complete token sb = new StringBuffer(sb.toString().trim()); if (sb.charAt(0) == QUOTE && sb.charAt(sb.length()-1) == QUOTE) { sb.deleteCharAt(sb.length()-1); // remove trailing double-quote sb.deleteCharAt(0); // remove leading double-quote for (int h=0; h<sb.length(); h++) { if (sb.charAt(h) == QUOTE) { int nextPos = h+1; if (nextPos < sb.length() && sb.charAt(nextPos) == QUOTE) { // if escaped by another double-quote sb.replace(h, nextPos+1, String.valueOf(QUOTE)); // replace escaped double-quotes } else { throw new Exception("a literal double-quote should be escaped by another double-quote"); } } } // add to list list.add(sb.toString()); // reset buffer sb.setLength(0); } else { throw new Exception("field containing commas and double-quotes must be quoted"); } } else { // incomplete token if (i < a.length-1) { // append the removed separator sb.append(SEPARATOR); // continue to append the next token } else { // no more token left throw new Exception("Incomplete token"); } } } else { // no double quote // add to list list.add(sb.toString().trim()); // reset buffer sb.setLength(0); } } } } return list; } }
发表评论
-
HTTPClient
2012-12-21 21:11 0public class RenRen { // The ... -
Export To Excel - Testing
2012-12-18 13:15 0MainTest ..... Map configM ... -
Export To Excel - ExcelUtils.java [Version 0.2]
2012-12-18 13:11 9import java.io.BufferedReader; ... -
Export To Excel - Action Oupt Excel
2012-11-23 13:49 10public String doAction(Work ... -
Export To Excel - ExcelUtils.java
2012-12-17 16:31 3import java.io.BufferedReader; ... -
Export To Excel - ExcelDAO.java
2012-12-18 12:55 5import java.sql.CallableStateme ... -
Export To Excel - commonExcelStyle.css
2012-12-18 12:55 6body { FONT-FAMILY: "Ari ... -
Export To Excel - ExcelConstants.java
2012-12-18 12:55 5/** * <p><b> * ... -
Export To Excel - ExcelRowList.java
2012-12-18 09:55 5import java.util.ArrayList; im ... -
Export To Excel - ExcelRowItem.java
2012-12-17 16:32 7import java.util.ArrayList; im ... -
Export To Excel - ExcelInfo.java
2012-11-23 13:50 8/** * <p><b> * ... -
Export To Excel - ExcelColList.java
2012-11-23 13:50 6import java.util.ArrayList; im ... -
Export To Excel - ExcelColItem.java
2012-11-23 13:50 11Version 0.1 import java.uti ... -
Export To Excel - ExcelCellItem.java
2012-11-23 13:49 7public class ExcelCellItem { ... -
Util
2012-12-17 16:32 676import java.io.BufferedReader; ... -
DMSUtil
2012-12-17 16:31 707import java.io.ByteArrayInputSt ... -
PooledConnectionManager
2012-12-17 16:31 926import java.sql.Connection; im ... -
FloatValidator
2012-10-05 13:42 771public class FloatValidator ext ... -
XmlHelper
2012-08-31 09:33 1268import java.io.ByteArrayInputSt ... -
XMLEncode
2012-08-30 18:43 1054public class XMLEncode implemen ...
相关推荐
CSVParser 是一个用于解析逗号分隔值(CSV)文件的工具,常见于数据处理、数据分析和文件交换中。在编程领域,CSV 格式因其简单性和通用性而被广泛采用。CSVParser 提供了一个方便的接口,使得开发者能够轻松地读取...
CSVParser 是一个基于 Java 的工具,专门用于解析逗号分隔值(CSV)文件。CSV 格式是一种常见的数据交换格式,广泛应用于数据分析、数据库导入导出和电子表格软件之间。这个 Java 库提供了一个简单的方法,将 CSV ...
本示例“CsvParser.zip”提供了一个解决方案,它利用了Poco库来处理中文字符,并确保在读取和写入CSV文件时正确地使用UTF-8编码,从而避免乱码。 首先,我们来看“Qt 中文乱码 UTF-8”这个问题。在Qt框架中,如果...
try (CSVParser parser = CSVParser.parse(new File(filePath), StandardCharsets.UTF_8, CSVFormat.DEFAULT.withFirstRecordAsHeader())) { for (CSVRecord record : parser) { // 处理每一行的记录 for ...
在描述中提到的"CSVparser类"可能是项目中自定义的一个类,用于读取和解析CSV文件。通常,这个类会逐行读取文件,然后根据逗号分隔符分割每一行,将数据存储在某种结构(如QStringList或std::vector)中。 接下来,...
CSVParser parser = CSVParser.parse(new File("path_to_your_csv_file.csv"), CSVFormat.DEFAULT); for (CSVRecord record : parser) { int rowIndex = record.getRecordNumber(); if (rowIndex == ...
csvparser:Visual Studio CMake演示项目和GitHub集成
这是一个CSV格式文件的解析器,包括对引号逗号的处理方式,完全兼容Microsoft excel生成的CSV文件,就是说只要是excel保存的CSV格式的文件,单元内可以任意含有引号逗号等特殊字符,支持Header(field name)。...
【标题】"jp.coe.mod.CSVParser:coffeescript CSVParser" 是一个使用CoffeeScript编写的CSV解析器,主要适用于JavaScript环境。CSV(Comma Separated Values)是一种常见的数据存储格式,常用于导入和导出数据到电子...
CSVParser 是一个基于 Node.js 的库,专门设计用于解析 CSV(逗号分隔值)文件,并将解析结果转换成嵌套的 JSON 对象。在处理大量结构化数据时,CSV 格式因其简洁和易读性而被广泛采用。然而,CSV 文件的数据结构...
csvParser 简单的CSV解析与工人的实现怎么跑npm运行开始例子出来$ npm run startWelcome to the Tab/Comma seperate validatorWhere is the file located?C:\Users\chatu\Desktop\csvSample.txtIs the file format ...
csvParser 使用状态机实现的csv文件解析器。 特性 简单轻量 使用状态机实现 提供两种模式取csv数据:回调函数和行列模式 使用接口方式实现API 支持Excel方式的csv格式 单元格支持多行 单元格内容可以使用引号,也可以...
`CSVParser.cpp`包含了实现CSV解析功能的具体代码,而`CSVParser.h`则声明了相关的类和函数,供其他模块调用。为了在Cocos2d-x中解析CSV,我们可以创建一个名为`CSVParser`的类,该类提供解析CSV文件的方法。 在`...
CSV解析器 ...CsvParser parser = CsvParser(std::cin) .delimiter( ' ; ' ) // delimited by ; instead of , .quote( ' \' ' ) // quoted fields use ' instead of " .terminator( ' \0 ' ); // termina
CSVParser 上载.csv文件,并将其显示为可排序的表格。通过角度对上传的CSV文件进行排序的概念证明应该注意的是,在这是一个完成的项目之前,还有很多事情要做。 检查问题部分以获取更多信息!
4. CSVParser API:在编程环境中,例如Java,我们可以使用CSVParser库(如Apache Commons CSV或OpenCSV)来解析CSV文件。这些库提供了API接口,如`parse()`方法,用于读取文件,`Record`对象用于存储一行数据,以及`...
CSVParser parser = new CSVParser(reader, format)) { for (CSVRecord record : parser) { String column1 = record.get("Column1"); String column2 = record.get(1); // 如果没有使用header,可以通过索引...
CSVParser parser = CSVFormat.DEFAULT.withHeader().parse(new FileReader("data.csv")); for (CSVRecord record : parser) { String name = record.get("姓名"); int age = Integer.parseInt(record.get("年龄...
CSVParser parser = new CSVParser(reader, csvFormat); ``` 3. **解析CSV记录**: `CSVParser`对象包含了一系列的`CSVRecord`,每个`CSVRecord`代表文件中的一行。我们可以遍历这些记录,获取每个字段的值: `...
CsvParser parser = new CsvParser(settings); try { parser.parse(new FileReader("example.csv")); // 处理解析后的数据 } catch (FileNotFoundException | TextParsingException e) { e.printStackTrace();...