jdk8 csv格式的文本,字段之间没有用双引号包围,根据,split时需要注意哪些问题 需要提供满足该要求的解析代码
时间: 2024-02-26 11:59:26 浏览: 14
以下是使用 JDK8 自带的 String.split() 方法解析 CSV 格式的文本,字段之间没有用双引号包围的示例代码:
```java
import java.util.Arrays;
public class CsvParser {
public static void main(String[] args) {
String csvText = "John,Doe,25\n" +
"Jane,Smith,30\n" +
"Bob,Johnson,40\n";
String[] lines = csvText.split("\n");
for (String line : lines) {
String[] fields = line.split(",");
System.out.println(Arrays.toString(fields));
}
}
}
```
在上面的示例代码中,我们首先将 CSV 文本按行分割,然后再将每行文本按逗号(,)分割成字段,最后输出每行的字段数组。
如果 CSV 文件中某个字段包含逗号或换行符,可能会解析出错。为了避免这种情况,我们可以考虑使用第三方库,例如 Apache Commons CSV,以获得更好的解析效果。以下是使用 Apache Commons CSV 解析 CSV 格式的文本示例代码:
```java
import java.io.StringReader;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
public class CsvParser {
public static void main(String[] args) throws Exception {
String csvText = "John,Doe,25\n" +
"Jane,Smith,30\n" +
"\"Bob, Johnson\",40\n";
StringReader reader = new StringReader(csvText);
Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(reader);
for (CSVRecord record : records) {
System.out.println(record);
}
}
}
```
在上面的示例代码中,我们使用了 Apache Commons CSV 的 CSVFormat 类来定义 CSV 文件的格式,然后使用 CSVFormat.parse() 方法将 CSV 文本解析为 CSVRecord 对象。CSVRecord 对象包含了表示每行数据的字段列表,可以通过 get() 方法获取其中的字段值。使用 Apache Commons CSV 可以更好地处理 CSV 文件中包含特殊字符的情况,例如逗号和双引号。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)